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!