Verze dokumentu: 4. 10. 2016
Licence: Tento dokument je určen k volnému šíření bez omezení.
Toto je velmi stručný tutoriálek pro použití gnuplotu.
Program gnuplot je interaktivním programem pro kreslení vědeckých 2D a 3D grafů z datových souborů i grafů funkcí. Jeho domovská stránka je www.gnuplot.info. Najdete zde dokumentaci, FAQ i help, který obsahuje i odkazy na tutoriály v češtině. Doporučuji též shlédnout část Demos, kde ke každému obrázku je uvedena i posloupnost příkazů, které ho vykreslí.
1. Spustit, opustit, …
Gnuplot spustíme příkazem gnuplot z příkazové řádky, resp. wgnuplot
(nebo wgnuplot_pipes) na MSW, nebo myšoidně z ikony.
Příkaz gnuplot soubor.gp vykoná příkazy z daného souboru a skončí, příkaz
gnuplot soubor.gp - příkazy vykoná, ale neskončí.
|
ukončit gnuplot |
|
vypiš nápovědu |
|
cesta k aktuálnímu adresáři |
|
vypiš obsah aktuálního adresáře |
|
ulož parametry grafu do textového souboru (skriptu) |
|
načti parametry grafu ze textového souboru (skriptu) |
|
help is your friend |
|
zobraz nastavení parametru xxx, nebo všechna nastavení |
2. Gnuplot jako kalkulačka
|
Ahoj světe! a jednoduchý výraz |
|
dělení v oboru celých a reálných čísel |
|
goniometrické funkce |
|
různé výrazy |
3. Kreslíme grafy funkcí a datové soubory
|
nakresli grafy funkcí (x je v radiánech) |
|
nakresli data ze souboru a dvě funkce (goniometrická: x je ve stupních) |
|
grafy čarový, bodový, míchaný |
|
jako výše, ale (z lenosti…) zkracujeme dlouhé příkazy |
|
Heavisideova skoková funkce a ternární operátor |
|
vzorkování a divergující funkce |
|
přepočítáváme sloupce datového souboru |
|
opakuj předchozí graf |
|
opakuj předchozí graf, přikresli další křivky |
|
vykresli všechny datové soubory v aktuálním adresáři |
4. Vlastnosti grafu
|
logaritmická osa y |
|
bez logaritmických os |
|
mřížka anebo bez mřížky |
|
zobraz kde anebo nezobraz legendu grafu |
|
popisek grafu |
|
popisky os |
|
automatické škálování osy, totéž bez zaokrouhlení |
|
nastav rozsah os |
5. 3D grafy
|
3D graf (povrch) |
|
s barevným povrchem |
|
barevná mapa |
|
šedá mapa |
|
nastavení směru pohledu (pohodlněji ale otáčením myší) |
6. Horké klávesy v okně grafu
|
pomoc k horkým klávesám |
|
autoscale |
|
replot |
|
pravítko (ruler) k měření vzdáleností |
|
měření vzdáleností v polárních souřadnicích (úhel nebo tangenta) |
|
ve 2D (un)set log y, ve 3D log z nebo barvy |
|
(un)set grid (mřížka) |
dvakrát |
poloha kurzoru do schránky (MBn = mouse button číslo n) |
|
dočasná anotace grafu |
|
výběr rozsahu oblasti (zvětšení, zoom) |
|
unzoom a předchozí nebo následující položka v historii zoomu |
7. Různé další příkazy
|
testovací obrázek |
|
více oken s grafy současně |
|
zobraz/nezobraz aktuální čas v grafu |
|
přepnutí mezi radiány a stupni |
|
výplň |
|
vypiš seznam všech stylů pro "with" |
|
popis grafu |
|
pojmenovaný popisek; zapomeň popisky |
|
šipka |
|
pojmenovaná šipka; zapomeň šipky |
|
historie příkazů |
|
na moderních systémech umožní popisky v libovolném jazyce (kódování) |
|
akceptuj české znaky na starších unixech |
|
akceptuj české znaky na (pouze) českých MSW |
|
prohlédneme si všechny demo soubory z distribuce gnuplotu |
8. Fitování (experimentálních) dat
Potřebujeme proložit nějakou funkci naměřenými daty, např. kvadratickou
funkci závisející na 3 parametrech a, b, c. Experimentální data uložíme do
souboru exp.dat, např. takto (oddělovačem sloupců je tabulátor nebo
mezery):
0.0 0.0
1.0 2.0
1.99 5.1
3.05 9.8
Pak použijeme následující skript:
# Kvadraticka modelova funkce y=f(x) k fitovani
f(x) = a*x*x + b*x + c
# Parametry funkce a jejich pocatecni odhady
a = 1.2
b = 0.5
c = 0.1
set title "Datovy soubor a rucni nastaveni parametru"
plot 'exp.dat' with lp, f(x) with line
pause -1 "Rucne nastavene hodnoty parametru modelove funkce. Podivej se na graf, pak zmackni Enter."
# Nafitujme namerena data ulozena v souboru exp.dat: 1. sloupec x, 2. sloupec y
fit f(x) 'exp.dat' via a,b,c
print "Precti si vysledek, tj. odhady parametru a,b,c a jejich chyby, pak se podivej na vysledny graf"
# Vykreslime experimentalni a nafitovanou krivku
set title "Prvni fit"
plot 'exp.dat' with lp, f(x) with line
Pro proložení přímky body v datovém souboru by pak nejkratší posloupnost příkazů byla tato:
# Nastaveni: Linearni modelova funkce y=f(x) k fitovani
f(x) = a*x + b
# Nastaveni: Parametry funkce a jejich pocatecni odhady
a = 2.6; b = 0.5
# Nastaveni: Nazev datoveho souboru
fajl = 'exp.dat'
# Nafituj data:
fit f(x) fajl via a,b
set title "Linearni fit"
plot fajl with lp, f(x) with line
Ještě snazší způsob, jak získat parametry proložené přímky, získáme příkazem
stat 'exp.dat', viz následující kapitola, ovšem bez uvedení nejistot v určení
koeficientů a, b.
Bližší informace o nelineárním fitování viz help fit a
help statistical_overview.
9. Statistické funkce
Pro zobrazeních základních statistických údajů z dat ve sloupcích zadaného
souboru (průměr, suma, medián, proložení přímkou)
můžete využít příkaz stat 'a.dat'.
#stat 'test.dat'
stat 'test.dat' using 1:3 # vybereme sloupce, ktere chceme analyzovat
show var
err_x = STATS_stddev_x / sqrt(STATS_records-1)
err_y = STATS_stddev_y / sqrt(STATS_records-1)
print "chyba aritmetickeho prumeru x: ", err_x
print "=> x = ", STATS_mean_x, " +- ", err_x
print " y = ", STATS_mean_y, " +- ", err_y
10. Tisk
Chcete si obrázek uložit do souboru nebo vytisknout? Zkuste například
set terminal pdf; set out 'a.pdf'
replot; set out; set term pop
nebo
set terminal png size 800,700; set out 'a.png'
replot; set out; set term pop
nebo
set terminal postscript color enhanced lw 2 "Helvetica" 14
set out 'a.ps'
replot; set out; set term pop
nebo
set terminal postscript eps mono enhanced lw 4
set out 'a.eps'
replot; set out; set term pop
Příkaz set terminal xxx změní typ výstupního souboru, např. pro tisk
do souboru daného formátu místo kreslení na obrazovku. Graf si pak
můžete vytisknout z prohlížeče daného typu souboru. Seznam možných
terminálů získáme příkazem set terminal. Podporovaných terminálů je
spousta, nejen pro "prehistorické" tiskárny a grafické terminály, ale i
pro výstup do LaTeXu či kombinovaného LaTeXu a postscriptu, do
animovaného gifu nebo do čistě textového terminálu dumb (vyzkoušejte
si např. set term dumb; test).
Poznámka: pokud vkládáte obrázky do nějakého dokumentu, bývá dobré se zbavit
případných bílých okrajů. Při vytváření png obrázku přidejte parameter
pro ořez set term png ... crop. Máte-li už uložený pdf obrázek do souboru,
zavolejte pak příkaz pdfcrop obrazek.pdf (program pdfcrop je např. součástí
distribucí TeXu), na postscriptový soubor zavolejte např. fixbb obrazek.eps.
Závěrečná poznámka: Enjoy gnuplot!