O víkendu probíhá na FIT VUT v Brně konference OpenAlt 2026 o otevřeném softwaru a datech, IT bezpečnosti, DIY a IoT. Na programu je spousta zajímavých přednášek. Pokud jste v Brně, stavte se. Vstup zdarma. Přednášky lze sledovat i online na VHSky a YouTube.
Qualcomm uzavřel víceletou dohodu se SpaceX. Bude dodávat rádiové technologie, baseband jednotky a software pro plánovanou pozemní 5G síť Starlink Mobile. Výstavba má zahrnovat desítky tisíc základnových stanic v USA. Zahájení nasazování se očekává v roce 2027. Qualcomm dohodu označuje za svůj dosud největší 5G kontrakt.
Google rozšířil Cloud Vulnerability Reward Program. Nově nabízí odměnu až 250 tisíc dolarů za vysoce závažné architektonické bezpečnostní chyby označované jako Root-in-Cloud.
V březnu byla oznámena spolupráce GrapheneOS s Motorolou. Nejnovější vlajka Motorola Signature 27 je první Motorola s oficiální podporou GrapheneOS. GrapheneOS (Wikpedie) je varianta Androidu zaměřující se na bezpečnost a soukromí.
Omarchy (Wikipedie) je linuxová distribuce s dlaždicovým správcem oken Hyprland. Založena je na Arch Linuxu. Vydána byla v nové verzi 4.5.0. Nově také pro Apple Silicon, konkrétně pro M1/M2/M3/Neo MacBooky.
Byla vydána nová stabilní verze 8.3 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 156 s bezpečnostními opravami z Chromia 157. Přehled novinek i s náhledy v příspěvku na blogu.
Multimediální přehrávač mpv byl vydán ve verzi 0.42.0. Jde o větší balík změn po bezmála roce. Mimo jiné se lépe integruje s Waylandem nebo rozšiřuje podporu DVD/Blu-ray, např. umožňuje přehrávat rovnou obrazy médií (soubory iso).
Matplotlib je knihovna umožňující kreslit docela pěkné grafy a to přímo z mého oblíbeného Pythonu. Dnes jsem řešil problém s kreslením grafu, kde jedna osa má být časová — s datumy.
Matplotlib v modulu pylab obsahuje funkci plot_date(), kterou jsem dříve používal a stačila mi. Tato funkce umí zobrazit ordinální hodnotu data, získanou pomocí date2num() jako krásné, do řetězce formátované datum.
import pylab as pl
import datetime as dt
# Připravíme data.
dates=[dt.date(2007, 5,10),
dt.date(2008,11,13),
dt.date(2008,12,11),
dt.date(2009,5,19)]
means=pl.randn(len(dates))
# Kreslíme.
pl.plot_date(pl.date2num(dates), means, "-")
# Hold your hats, it is show time!
pl.show()
Dnes jsem ovšem potřeboval vyrobit errorbargraf, který má na vodorovné ose data, což asi vylučuje použití
plot_date().
Jak už to bývá, řešením je RTFM, ale tentokrát toho na toto téma v TFM nebylo mnoho napsáno. Ovšem stačilo to a vykouzlil následující kód, který snad všecko vysvětlí sám
import matplotlib.dates as md
# Příprava dat.
variances=pl.randn(len(means))
mean_vars_plot = pl.subplot(1, 1, 1)
# Kreslíme.
pl.errorbar(pl.date2num(dates), means, variances)
# Tady je to kouzlo -- změníme lokátor ticků na ose
dl = md.AutoDateLocator()
mean_vars_plot.xaxis.set_major_locator(dl)
# a změníme formátovač popisků.
mean_vars_plot.xaxis.set_major_formatter(
md.AutoDateFormatter(dl) )
# Pochlubíme se výsledkem
pl.show()
Pokud si ještě trochu pohrajete se zoomem a polohou, výsledný graf může vypadat třeba nějak takhle pěkně:
Nakonec bych rád upozornil, že když jsem měl nastavování xaxis někde před kreslícími příkazy, dostával jsem záhadné výjimky
ValueError: ordinal must be >= 1, tak si na to dávejte pozor.
Update: vyměnil jsem graf za nějaký, který lépe ukazuje data i s měsíci, ale taky to, že mám ještě problém s diakritikou. Matplotlib evidentně používá nějaký neobsáhlý font.
Tiskni
Sdílej:
ano-taky už jsem to kdysi řešil - je třeba nastavit jiný font.
Ba ne, právě jsem zjistil, že jsem kecal - chyba byla asi v kódování. matplotlib používá, myslím, gtk a to chce zřejmě unicode, kdežto já předával popisky v utf8. Takže použití U"" stringů pomohlo.