C2110 Operační systém UNIX a základy programování -1- C2110 Operační systém UNIX a základy programování 9. lekce Petr Kulhánek kulhanek@chemi.muni.cz Národní centrum pro výzkum biomolekul, Přírodovědecká fakulta Masarykova univerzita, Kotlářská 2, CZ-61137 Brno C2110 Operační systém UNIX a základy programování -2- PM3 http://www.gnuplot.info/ (dokumentace, tutoriály, zdrojové kódy) GNUPlot C2110 Operační systém UNIX a základy programování -3Interaktivní spouštění GNUPlot slouží k vykreslování 2D a 3D grafů umožnující práci v interaktivním tak i skriptovacím režimu. [kulhanek@wolf ~]$ gnuplot G N U P L O T Version 4.4 patchlevel 3 last modified March 2011 System: Linux 3.2.0-31-generic Copyright (C) 1986-1993, 1998, 2004, 2007-2010 Thomas Williams, Colin Kelley and many others gnuplot home: http://www.gnuplot.info faq, bugs, etc: type "help seeking-assistance" immediate help: type "help" plot window: hit 'h' Terminal type set to 'wxt' gnuplot> Interaktvní mód příkazová řádka gnuplotu příkazová řádka shellu Bash C2110 Operační systém UNIX a základy programování -4Neinteraktivní spouštění 1) Nepřímé spouštění Spouštíme interpreter jazyka a jako argument uvádíme jméno skriptu. $ gnuplot muj_skript_v_gnuplotu Skripty nemusí mít nastaven příznak x (executable). 2) Přímé spouštění Spouštíme přímo skript (shell automaticky spustí interpreter). $ chmod u+x muj_skript_v_gnuplotu $./muj_skript_v_gnuplotu Skripty musí mít nastaven příznak x (executable) a interpreter (součást skriptu). #!/usr/bin/gnuplot plot sin(x) pause -1 C2110 Operační systém UNIX a základy programování -5Příkaz - plot > plot funkce/soubor [nastaveni_zobrazeni] [, fce/soubor ...] Zobrazí XY graf funkce nebo datové řady obsažené v souboru. Příklady: > plot sin(x) > plot cos(5.7*x+3.4) with points linecolor rgb "red" \ linewidth 2 title "cos" > plot "input.txt" using 1:2 with lines > plot sin(x), cos(x) lines, points, linespoints, dots barva čáry tloušťka čáry legendanázev souboru s daty první sloupec tvoří x-ové hodnoty druhý sloupec tvoří y-ové hodnoty zobrazí funkci sin a cos do jednoho grafu C2110 Operační systém UNIX a základy programování -6- Cvičení 1. Znázorněte průběh funkce y=x2 2. Funkci z prvního cvičení zobrazte modrou barvou 3. Zobrazte průběh teploty v čase obsažený v souboru, který jste získali při řešení domácího úkolu III v Lekci 8. 4. Zobrazte do jednoho grafu funkci sin(x) pomocí červené čáry a funkci cos(x) pomocí oranžové čáry a bodů. Zadaní řešte v interaktivním režimu. C2110 Operační systém UNIX a základy programování -7Další příkazy > set title "popis" # záhlaví grafu > set xrange[min_value:max_value] # nastaví rozsah x-ové osy > set xlabel "popis" # nastaví popis x-ové osy > set yrange[min_value:max_value] # nastaví rozsah y-ové osy > set ylabel "popis" # nastaví popis y-ové osy > set nokey # nezobrazí legendu k datovým řadám > pause -1 # čeká na zmáčknutí klávesy C2110 Operační systém UNIX a základy programování -8- Cvičení 1. Napište skript, který znázorní průběh funkce y=x2 v rozsahu 0-10 pro x-ovou hodnotu. Skript spusťte nepřímo pomocí interpretru gnuplot. 2. Napište skript, který zobrazí průběh teploty v čase obsažený v souboru, který jste získali při řešení domácího úkolu III v Lekci 8. V grafu popište osy včetně určení jednotek. C2110 Operační systém UNIX a základy programování -9- Terminály Terminál určuje kam bude graf vykreslen. > set term x11 # výstup je vykreslen do okna > set term wxt # výstup je vykreslen do okna (lepší vlastnosti) > set term png size 800,600 # výstup je vykreslen jako obrázek ve formátu png > set output "output.png" # výstup bude uložen do souboru output.png > test # vytiskne stránku demonstrující vlastnosti terminálu (ne všechny terminály mají stejné možnosti výstupu) C2110 Operační systém UNIX a základy programování -10Ukázky výstupu z různých terminálů wxt postcript/eps podporuje přerušované čáry C2110 Operační systém UNIX a základy programování -11- Cvičení 1. Jaké vlastnosti poskytují terminály x11 a wxt. Pracujte v itnteraktivním režimu a použijte příkaz test. 2. Napište skript, který znázorní průběh funkce y=5.x3 + 6. x2 - 7 v rozsahu -10 až 5 pro xovou hodnotu. Skript spusťte přímo s uvedením interpretru v záhlaví skriptu. 3. Upravte předchozí skript tak, že se graf vykreslí do obrázku ve formátu png. Obrázek bude mít rozměry 640x480. Obrázek zobrazte pomocí příkazu display. 4. Zobrazte výsledek příkazu test pro terminál png a postscript. 5. Jaké terminály podporuje gnuplot (set terminal bez argumentu)? C2110 Operační systém UNIX a základy programování -12Praktická ukázka I #!/usr/bin/env gnuplot set terminal postscript enhanced eps color size 3.20,2.40 font "Arial" 14 dashlength 3 set border lw 2 #set nokey set bmargin 3.5 set rmargin 2.0 set encoding iso_8859_1 # ------------------------------------------------------------------------------ set output "Figure01a.eps" set title "minimum QM / ABF / R_{EWALD} = 8 {\305}" set xlabel "DD ({\305})" set xrange[-1.0:2.0] set xtics 0.5 set format x "%.1f" set ylabel "{/Symbol D}A (kcal mol^{-1})" set yrange[0:30] set ytics 5 set format y "%g" plot 'Figure01a/cut08_1ns/int' u 1:2 t "4x250ps" with l lw 4 lt 1 lc rgb "black", \ 'Figure01a/cut08_2ns/int' u 1:2 t "4x500ps" with l lw 4 lt 1 lc rgb "red" C2110 Operační systém UNIX a základy programování -13- Výsledek C2110 Operační systém UNIX a základy programování -14Další ukázka