V neděli 30. června skončí (EOL) podpora CentOS Linux 7.
David Tschumperlé a Garry Osgood v obšírném článku se spoustou náhledů shrnují vývoj multiplatformního svobodného frameworku pro zpracování obrazu G'MIC (GREYC's Magic for Image Computing, Wikipedie) za poslední rok.
Andrew S. Tanenbaum byl oceněn 2023 ACM Software System Award (Wikipedie) za operační systém MINIX.
Celkový počet stažení aplikací z Flathubu překročil 2 miliardy. Aktuální Statistiky Flathubu: Celkový počet stažení 2 002 793 783. Celkem desktopových aplikací 2 636.
Byla vydána nová verze 4.8.0 programu na úpravu digitálních fotografií darktable (Wikipedie).
Nová čísla časopisů od nakladatelství Raspberry Pi: MagPi 142 (pdf) a HackSpace 79 (pdf).
Qtractor (Wikipedie) dospěl do verze 1.0.0. Jedná se o Audio/MIDI vícestopý sekvencer.
Byl vydán svobodný kancelářský balík OnlyOffice Docs 8.1. Vedle četných oprav přináší několik funkcí včetně podpory editace textu v PDF a vytváření formulářů v PDF.
Daniel Stenberg, autor nástroje curl, z databáze SteamDB zjistil, že aktuálně 22 734 her na Steamu používá curl.
Společnost Anthropic vydala Claude 3.5 Sonnet, tj. novou verzi své umělé inteligence Claude (Wikipedie). Videoukázky na YouTube. S Claude 3, stejně jak s GPT-3.5, Llama 3 a Mixtral, si lze pokecat bez přihlašování na DuckDuckGo AI Chat.
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.