gnuplot Eduard Fugarolas Resum Aquesta pràctica de PTN està dedicada a conèixer el programa gnuplot. El gnuplot serveix per representar gràfiques, i funciona en mode comanda, cosa que fa més útil la seva programació.
1
Comencem amb el gnuplot
Quan engeguem el gnuplot ens surt el següent: [eduard@localhost ~]$ gnuplot G N U P L O T Version 4.0 patchlevel 0 last modified Thu Apr 15 14:44:22 CEST 2004 System: Linux 2.6.11-6mdk Copyright (C) 1986 - 1993, 1998, 2004 Thomas Williams, Colin Kelley and many others This is gnuplot version 4.0. Please refer to the documentation for command syntax changes. The old syntax will be accepted throughout the 4.0 series, but all save files use the new syntax. Type ‘help‘ to access the on-line reference manual. The gnuplot FAQ is available from http://www.gnuplot.info/faq/ Send comments and requests for help to Send bugs, suggestions and mods to
Després d’això tenim el missatge Terminal type set to ’x11’ gnuplot> que ens indica que el gnuplot està esperant les nostres comandes. El x11 és l’entorn gràfic.
1
2
Representació de funcions
Representarem la funció f (x) = exp(x) utilitzant una escala lineal en l’eix d’ordenades de l’esquerra i una de logarítmica a la dreta. Aprendreu a posar títol a la gràfica, etiquetes als eixos i a modificar els formats numèrics i la freqüència de les divisions dels eixos. Al gnuplot escrivim això: gnuplot> gnuplot> gnuplot> gnuplot> gnuplot> gnuplot> gnuplot> gnuplot> gnuplot>
plot exp(x) set xrange [0:10] replot set ytics nomirror set format x "%.1f" set title "exp(x)" set xlabel "x" set ylabel "Lineal" replot exp(x) axes x1y2
Seguim amb les instruccions: gnuplot> gnuplot> gnuplot> gnuplot> gnuplot> gnuplot> gnuplot> gnuplot>
set logscale y2 set y2tics replot set xtics 1 set my2tics 10 replot set y2label "Logarítmic" set grid x; set grid y; replot
Per desfer certes opcions, no es fa servir la instrucció set no-elquesigui tal com diu el dossier (propi del gnuplot 3.5), sinó que al gnuplot 4.0 es fa amb unset elquesigui. De fet, el gnuplot ja ens avisa: gnuplot> set grid x; set grid y; replot gnuplot> set nokey; replot ^ warning: deprecated syntax, use "unset" gnuplot> unset key; replot gnuplot> unset grid; replot Ara que ja tenim la nostra gràfica, la guardem amb la instrucció save. gnuplot> gnuplot> save "exp.plt" gnuplot> exit La informació guardada al fitxer exp.plt és de fet el conjunt d’intruccions que llegeix el gnuplot per generar la gràfica. Podem comprovar-ho obrint-ho amb qualssevol editor de textos (i.e Kate). [eduard@localhost ~]$ kate exp.plt & [1] 1564 [eduard@localhost ~]$ Per carregar el fitxer amb el gnuplot, n’hi ha prou amb un load " 2
":
gnuplot> load "exp.plt" Tot seguit ens apareix l’esperada gràfica. Un petit detall a tenir en compte: perquè això passi, hem d’obrir el gnuplot desde la mateixa carpeta on tenim l’arxiu que volem carregar. Sinó, ens apareix un missatge de l’estil gnuplot> load "exp.plt" ^ Cannot open load file ’exp.plt’ util.c: No such file or directory gnuplot> Si som tossuts (o tenim algun altre motiu) i volem carregar un fitxer d’una altra carpeta (diferent a la que estem quan obrim el gnuplot) n’hi ha prou amb especificar la seva localització. En aquest cas, el fitxer exp.plt resideix a la carpeta file:/home/eduard/, i la cosa queda així: gnuplot> load "/home/eduard/exp.plt" gnuplot> Quan guardem el fitxer, l’estem guardant com un script file, que després el gnuplot podrà llegir. Apart del .plt hi ha un altre format, el .gp. No sé exactament quina diferència hi ha. A part d’això, podem carregar el script de dues maneres diferents: la primera és el load que ja coneixem, i la segona és el que se’n diu el bach mode (mode en sèrie, o alguna cosa per l’estil), que consisteix en cridar el gnuplot, deixar que faci la feina, i després es tanca solet. Es fa així: [eduard@localhost ~]$ gnuplot exp.plt [eduard@localhost ~]$ Al fer això, el gnuplot s’obre, fa el que li diu el exp.plt (la gràfica es veu durant un petit instant) i es tanca. En aquest cas és bastant inútil, perquè el que fem és dibuixar una gràfica; tot i això, el batch mode pot ser útil en altres casos, com ara suposem que no volguem veure la gràfica, sinó tant sols guardar-la.
3
Representació de fitxers
Obrim el fitxer met0811.dat amb el Kate. Aquest fitxer conté les dades meteorològiques 10-minutals enregistrades al terrat de la Facultat de Física el dia de l’eclipsi de sol de l’11 d’agost de 1999. En aquest apartat representarem l’evolució de la irradiància solar global total (en W m−2 ), que figura a la sisena columna del fitxer, i la compararem amb la que s’hagués mesurat sense eclipsi. Això últim ho farem ajustant una funció sinus a la gràfica de la radiació solar del dia anterior, en què el cel es va mantenir força serè a Barcelona. gnuplot> plot "met0810.dat" using :6 with points
3
Corba d’irradiància (LaTeX format) 1000 “met0811.dat” using 2:6 f(x)
900 800 700 600 500 400 300 200 100 0 05:00
06:00
07:00
08:00
09:00
10:00
Figura 1: Exercici amb gnuplot
4
11:00
12:00