Portál AbcLinuxu, 30. dubna 2025 11:22
Nová verze gnuplotu si už rozumí s UTF-8. I když jen částečně (výstup do velmi žádáného PostScriptu to není), věc považuji za zápisku hodnou.
Gnuplot verze 4.2 kromě spousty novinek přináší podporu pro kódování UTF-8, histogramů a popisků v grafu. Tyto vlasnosti si dneska ukážeme.
Návod k UTF-8 je vlastně jen návodem, jak správně nastavit font. Korektní výstup jsem se pokoušel získat a získal pro výstupní moduly PNG, X11 a SVG. Testovací soubor je dodáván se zdrojáky, případně jej lze získat tady.
Jak je vidět, záležitost není zcela bezproblémová, jedná se o takové hackování, ale pořád lépe, než se držet osmibitových znakových sad.
Data pro můj UTF-8 histogram s popisky jsou tato (v kódu odkazovány jako 'prehled'):
#Rok Příjmy Výdaje Schodek 2003 538500 538500 0 2004 586500 586500 0 2005 4393600 4393600 0 2006 768600 768600 0 2007 881400 881880 480
a gnuplot script následující:
#!gnuplot # Začneme s PNG set terminal png interlace enhanced \ font '/usr/share/fonts/dejavu/DejaVuSans.ttf' 12 size 640,480 set output 'prehled.png' set boxwidth 0.9 absolute set style fill solid 1.00 border -1 set style histogram clustered gap 1 title offset character 0, 0, 0 set style data histograms unset xtics set xtics out scale 0,0 nomirror offset character 0, 0, 0 set yrange [0:*] nowriteback set grid noxtics ytics set xlabel 'Rok' set ylabel 'Koruny české' set title "Vývoj rozpočtu obce Úherčice" plot 'prehled' using 2 title 'Příjmy', \ '' using 3:xticlabels(1) title 'Výdaje', \ '' using 0:($2>$3?$2:$3):4 with labels center offset 0,1 title 'Schodek' # Vyrobíme SVG set terminal svg enhanced \ font 'sans-serif' fsize 12 \ size 640,480 set output 'prehled.svg' replot
Vysvětlovat se se syntaxí a sémantikou nemá smysl, přečtěte si návod uvnitř interpretu gnuplotu (pomocí help PŘÍKAZ
) a prohlédněte si přiložený obrázek.
Jemné pošťouchnutí: Určení fontu je závislé na výstupním formátu (příkaz set terminal … font). Péengéčku musíte zadat celou cestu k souboru s fontem, SVG stačí jméno, protože font se hledá až při prohlížení. Kdo by chtěl vyzkoušet X11 výstup, musí zadat název fontu a před něj přidat předponu mbfont:.
Histogram se zapíná příkazem set style data histogram a set style histogram. Styl umí i generovat legendu z prvního řádku/sloupce tabulky (parametr title columnhead, zde ale nepoužito).
Popisky do grafu lze vložit parametrem with labels, přičemž hodnota se bere z 3. parametru using. Z nějakého důvodu má ale problémy při získávání hodnot přes funkce (např. ve svém příkladě jsem chtěl získat hodnotu schodku jako rozdíl výdajů a příjmů ($3-$2), ale tak nějak to vracelo nesmysly).
Pokuď vás zajímá, co všechno verze 4.2 přináší, nahlédněte do galerie.
Tiskni
Sdílej:
set decimalsign locale "cs_CZ.UTF-8" set format y "%'.0fVysledkem je skupinovani radu podle ceskych zvyklosti (napr. 1 500 000).
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.