Vous êtes sur la page 1sur 28

Breve Tutorial sobre el Graficador

GNUPlot
Como iniciar el GNUPlot:
El programa para graficar datos cientficos Gnuplot (standard en cualquier distribucin Linux) se inicia
desde cualquier ventana terminal escribiendo en el prompt gnuplot.
l iniciarse el programa devuelve un prompt que indica que espera alg!n comando. "i se desea salir de
Gnuplot se debe ingresar exit. ntes del prompt aparece una indicacin de que tipo de terminal se
esta usando# en nuestro caso una terminal $xt. Los diferentes tipos de terminales permiten generar
salida a diferentes tipos de arc%ivo. &ara ver las terminales disponibles se debe escribir set terminal'
El tipo de terminal inicial# $xt es una terminal que permite general gr(ficos en una ventana separada.
La sintaxis es'
set term $xt )*n+,
)si-e *$idt%+#*%eig%t+,
))no,en%anced,
)font *font+,
)title .title.,
))no,persist,
))no,raise,
))no,ctrl,
)close,
Este tipo de terminal permite m!ltiples ventanas con gr(ficos /a que el comando set terminal $xt
*n+ dirige la salida a la ventana n!mero n. El ttulo de la ventana usualmente es el n!mero de ventana#
pero tambi0n se puede cambiar utili-ando el 1e/$ord title. Las ventanas de gr(ficos permanecer(n
abiertas %asta que se presione q con el cursor sobre la ventana# eligiendo close en el men! de la
ventana# o e2ecutando' set terminal $xt *n+ close. dem(s# la terminal del tipo $xt permite
interactuar con la ventana del gr(fico utili-ando el mouse / soporta un modo de texto extendido
(en%anced) que permite introducir caracteres especiales.
3n comando para tener siempre en cuenta es %elp seguido del comando para el cual se quiere obtener
informacin. 3tili-ando este comando es posible obtener una a/uda detallada incluso de 1e/$ords que
modifican ciertos comandos. &or e2emplo# %elp plot $it% permite obtener los estilos permitidos en un
gr(fico / sus 1e/$ords modificadores.
Cmo graficar con Gnuplot utilizando los comandos plot y splot:
Los comandos plot / splot son los comandos b(sicos de Gnuplot. &ermiten graficar funciones o
datos de diversas maneras. El comando plot se utili-a para graficar funciones o datos bidimensionales /
splot para tridimensionales.
La sintaxis a utili-ar es'
plot )*ranges+,
)*iteration+,
)*function+ 4 ).*datafile+. )datafile5modifiers,,,
)axes *axes+, )*title5spec+, )$it% *st/le+,
)# )definitions)#,, *function+ ...,
donde se puede especificar para graficar una *function+ o el nombre entre comillas de un arc%ivo con
datos. En la siguiente tabla se listan algunas de las funciones disponibles'
Funcin Devuelve
----------------------------------------------------------
abs(x) absolute value of x, |x|
acos(x) arc-cosine of x
asin(x) arc-sine of x
atan(x) arc-tangent of x
cos(x) cosine of x, x is in radians.
cosh(x) hyperbolic cosine of x, x is in radians
erf(x) error function of x
exp(x) exponential function of x, base e
inverf(x) inverse error function of x
invnorm(x) inverse normal distribution of x
log(x) log of x, base e
log!(x) log of x, base !
norm(x) normal "aussian distribution function
rand(x) pseudo-random number generator
sgn(x) if x # !, - if x $ !, ! if x%!
sin(x) sine of x, x is in radians
sinh(x) hyperbolic sine of x, x is in radians
s&rt(x) the s&uare root of x
tan(x) tangent of x, x is in radians
tanh(x) hyperbolic tangent of x, x is in radians
&or e2emplo# para graficar la funcin sin(x)6x'
Existen m!ltiples formas de modificar el gr(fico creado inclu/endo un ttulo# nombre a los e2es# etc.
lgunos de los comandos posibles son'
'reate a title( # set title )*rueba "nuplot+
*ut a label on the x-axis( # set xlabel ,-alor de las .,
*ut a label on the y-axis( # set ylabel ,/esultado de la funcion,
'hange the x-axis range( # set xrange 0-1(12
'hange the y-axis range( # set yrange 0-!.3(.42
5ave "nuplot determine ranges( # set autoscale
6ove the 7ey( # set 7ey at 4,-!.1
Delete the 7ey( # unset 7ey
*ut a label on the plot( # set label ,8it&ueta, at -1,!.9
/emove all labels( # unset label
*lot using log-axes( # set logscale
*lot using log-axes on y-axis( # unset logscale: set logscale y
'hange the tic-mar7s( # set xtics (-4,-3,!,3,4)
/eturn to the default tics( # unset xtics: set xtics auto
7espu0s de ingresar estos comandos se debe e2ecutar el comando replot o graficar nuevamente con el
comando plot'
"i sobre este gr(fico se quiere graficar otra funcin tambi0n se debe utili-ar el comando replot'
8tra opcin es utili-ar nuevamente el comando plot para graficar ambas funciones simult(neamente'
plot sin(x)6x # cos(x9:).
El gr(fico anterior muestra que el rango en el e2e ; no es el adecuado porque la funcin cos(x9:) toma
valores menores a 5<.= /# adem(s# la le/enda donde se indica con que color se grafica cada funcin
quedo algo tapada al graficar esta funcin. &ara resolver esto lo me2or es modificar el rango con el
comando set /range >xx'xx?# pero es posible tambi0n definir el rango en la lnea del comando plot'
En esta oportunidad se inclu/o el rango para ambos e2es en el comando plot. "i se desea a2ustar solo
uno de los e2es utili-ando este m0todo el rango del otro debe indicarse como >?.
@asta a%ora los graficos se dibu2an con lneas pero tambi0n son posibles otras opciones. Aada funcin a
graficar puede incluir un 1e/$ord $it% que indica cmo se debe graficar la funcin / cu/a sintaxis
es'
$it% *st/le+ ) )linest/le 4 ls *lineBst/le+,
4 ))linet/pe 4 lt *lineBt/pe+,
)line$idt% 4 l$ *lineB$idt%+,
)linecolor 4 lc *colorspec+,
)pointt/pe 4 pt *pointBt/pe+,
)pointsi-e 4 ps *pointBsi-e+,
)fill 4 fs *fillst/le+,
)no%idden:d, )nocontours, )nosurface,
)palette,,
,
donde *st/le+ puede ser uno de los posibles estilos que se dividen en dos grupos. El primero inclute los
estilos lines# points# linespoints# dots# impulses# labels# steps# fsteps# %isteps# errorbars# errorlines#
financebars# xerrorbar# xerrorlines# x/errorbars# x/errorlines# /errorbars# /errorlines# / vectors que
corresponden a estilos que tienen asociadas lneas# puntos o textos. El segundo grupo inclu/e a los
estilos boxes# boxerrorbars# boxx/errorbars# candlestic1s# filledcurves# %istograms# image# rgbimage#
rgbalp%a# circles# / pm:d que inclu/en la posibilidad de rellenar (reas del gr(fico. &or e2emplo# la
funcin sin(x)6x) graficada con diferentes estilos sera'

El 1e/$ord $it% tambi0n puede incluir informacin sobre el tipo de lnea# color# tamaCo# patrn de
relleno (ver su sintaxis m(s arriba). 3n resumen de las posibilidades se obtiene ingresando el comando
test que muestra los tipos# tamaCos# etc. disponibles en una ventana.
&or e2emplo# si queremos graficar la funcin con lneas un poco m(s gruesas / de color c/an utili-amos
el comando plot >5DE'DE?>5D'D.E? sin(x)6x l$ : lt F'
"i queremos graficar la funcin con puntos un poco m(s grandes que lo usual / representados con
cuadrados usamos plot >5DE'DE?>5D'D.E? sin(x)6x $ p pt F ps G'
Htese que es posible abreviar los comandos si no %a/ ambigIedad en la escritura / que Gnuplot
mantiene las le/endas de e2es# ttulo# etc. %asta que no se borren con el comando unset (por e2emplo#
unset title) o cambien.
Gnuplot tiene la posibilidad de %acer gr(ficos m!ltiples en la misma ventana definiendo el modo
multiplot / definiendo el (rea a utili-ar. &or e2emplo# si queremos %acer un gr(fico de dos funciones
en la misma ventana'
En este e2emplo# que el modo multiplot debe definirse al inicio / cerrarse al final (unset multiplot).
continuacin se define el (rea a ocupar con el grafico mediante set si-e xx#// que fi2a la extensin
en ambas coordenadas (en el e2emplo# el gr(fico tendra una altura igual a la mitad del largo). Luego se
fi2a donde esta el origen del primer gr(fico con set origin xx#// / se grafica sin(x). Jinalmente se
repite para la funcin cos(x) cambiando el origen para que no se superpongan los gr(ficos.
&ara graficar superficies se utili-a el comando splot que tiene una sintaxis similar a la de plot pero
se debe tener en cuenta que existe un e2e adicional. &or e2emplo# para graficar sin(x99GK/99G)6
(x99GK/99G) es conveniente primero borrar las le/endas que utili-amos en los gr(ficos anteriores /
definir rangos ra-onables para las coordenadas L e ; utili-ando set xrange / set /range (o incluir
los nuevos rangos en el comando splot)'
En el gr(fico se superponen las lneas que definen la superficie por delante / por detr(s lo que puede
generar alguna confusin. &ara evitar esto se puede definir un modo para lneas ocultas mediante set
%idden:d que oculta las lneas ocultas e identifica la parte superior e inferior de la superficie con
diferentes colores'
El punto desde donde se esta observando la superficie graficada se define con set vie$ rotxx#rot--
donde rotxx / rot-- son los (ngulos de rotacin alrededor de los e2es L / M en grados. Nnicialmente# el
e2e L coincide con el e2e %ori-ontal de la ventana# el e2e ; con el vertical / el e2e M sale %acia afuera de
la pantalla. Auando uno usa el comando splot inicialmente grafica con un rotxxO=< grados / rot--O
:< grados (ver esquina inferior i-quierda de la ventana). &or e2emplo# si defino set vie$ P<#< veo la
superficie seg!n una rotacin de P< grados alrededor del e2e L (el e2e L es el %ori-ontal de la ventana#
el ; se mete dentro de la ventana / el M es el vertical de la ventana).
"i se necesita conocer en que puntos la superficie alcan-a ciertos valores es !til definir valores de
contorno que indiquen los puntos donde se logra ese valor. &ara ello se dispone de set contour que
permite marcar curvas de nivel en la superficie# en la base o en ambas# / de set cntrparam que
permite definir el n!mero de curvas de nivel a dibu2ar utili-ando diferentes procedimientos. &or
e2emplo# para volver al punto de vista original / definir curvas de nivel para los valores <# <.G# <.F# /
<.= en la superficie / en la base %acemos'
Cmo graficar datos desde un archivo:
dem(s de graficar funciones# Gnuplot permite graficar datos guardados en arc%ivos de texto comunes.
"upongamos que tenemos un arc%ivo llamado datos.dat que contiene mediciones de algunos ob2etos
en un formato de varias columnas'
Los datos de este arc%ivo son mediciones polarim0tricas de ciertos ob2etos donde se agrupan por
columnas valores correspondientes a diferentes par(metros. &or otra parte# las lneas que se inician con
Q son ignoradas por Gnuplot por lo que resultan !tiles para incluir comentarios o indicaciones sin
afectar la lectura del arc%ivo.
"i /o quiero graficar los datos de este arc%ivo usando el comando plot lo puedo %acer mediante plot
Rdatos.datR# pero por defecto Gnuplot utili-ar( slo los datos que est(n en las dos primeras columnas ( a
veces las tres primeras) /# en este caso# graficar( el n!mero de ob2eto (st) contra el aCo (Jec%a).
"i queremos graficar los valores de otras columnas se requiere indicar claramente cu(l es la que nos
interesa.
&or e2emplo# en la cuarta columna (p%) est(n los (ngulos de fase en el cual se %i-o la observacin /
en la d0cima el valor de polari-acin porcentual reducida (&r). "i queremos graficas (ngulo de fase
vs. polari-acin reducida debemos utili-ar el 1e/$ord using en el comando plot'
&or otra parte# en la s0ptima columna (e&S) se indican los errores de la polari-acin# por lo cual sera
interesante agregar esa informacin inclu/endo barras de error para cada punto. &ara ello debemos
incluir el 1e/$ord $it% con el par(metro errorbars'
&ara me2orar un poco el gr(fico vamos a agregar le/endas en ambos e2es# sacaremos el indicador del
rincn superior derec%o# reempla-aremos los signos K por tri(ngulos# asignaremos un rango de < a :<
grados para el (ngulo de fase e incluiremos una lnea que marque el valor cero de polari-acin
reducida'
El punto que aparece en un (ngulo de fase de DT grados tiene una gran barra de error asi que tal ve-
convendria marcarlo de alg!n modo. &ara eso se puede definir etiquetas con set label / flec%as con
set arro$. &or e2emplo'
Uanto en set label como en set arro$ el D identifica qu0 etiqueta o flec%a es# lo que permite
agregar otros elementos similares al gr(fico indic(ndolos con n!meros sucesivos# pero adem(s me
permite modificarlas sin necesidad de reescribir toda la instruccin nuevamente. &or e2emplo# si quiero
cambiar la etiqueta ValoW por Xue es estoWWW el comando set label D Xue es estoWW es suficiente
/ no se requiere indicar de nuevo la posicin.
Uambi0n es posible para Gnuplot operar con las columnas de un arc%ivo de datos. En las columnas = /
T del arc%ivo datos.dat aparecen los valores de polari-acin instrumental / el error. "i me interesa ver
que error porcentual esto/ cometiendo para una polari-acin dada debera graficar polari-acion vs.
error6polari-acin# lo que implica que tengo que operar con las columnas del arc%ivo. &ara eso en los
par(metros para el 1e/$ord using puedo aplicar cualquier funcin matem(tica para operar con
columnas mediante el recurso de encerrar la expresin entre par0ntesis / nombrar las columnas
mediante la expresin Yn donde n es el n!mero de columna'
Cmo guardar los grficos en diferentes formatos:
La posibilidad que tiene Gnuplot de definir terminales diferentes permite lograr salidas a gr(ficos con
diferentes formatos. Los formatos m(s utili-ados son el &HG (o Z&EG) / el &8"U"A[N&U.
&ara crear el arc%ivo con el gr(fico se debe fi2ar el tipo de terminal que se desea con set terminal *tipo
de terminal+ / luego abrir un arc%ivo de salida con set output Rarc%ivo.extR. Aada tipo de terminal
tiene diferentes 1e/$ords que permiten definir el tipo de letra# el tamaCo# si acepta caracteres
especiales# etc. (consultar el %elp). &or e2emplo# para crear un arc%ivo de nuestro !ltimo gr(fico en
formato &HG# %acemos'
/ el gr(fico obtenido en el arc%ivo grafico.png es'
@a/ que notar que si bien cerramos el arc%ivo de salida con unset output la terminal v(lida sigue
siendo &HG dado que no la modificamos nuevamente con set terminal. Esto quiere decir que si
queremos ver los gr(ficos en una ventana debemos regresar a una terminal que asi lo permita con# por
e2emplo# set terminal $xt.
La venta2a de una terminal &ostscript es que permite varias opciones mu/ !tiles para crear gr(ficos de
mu/ buena calidad utili-ando letras / smbolos especiales. &or e2emplo# si al gr(fico anterior le quiero
agregar una etiqueta que contenga smbolos debo utili-ar una codificacin especial para que Gnuplot
interprete que es lo que deseo %acer.
&rimero# se debe asegurar que se utili-a la codificacin correcta con set encoding isoB\\EPBD. Luego
defino la etiqueta mediante set label G R)6"/mbolOD\ ]:=G^B)6OP.= <,_)6ODG ]GFE,,)6@elvetica e_)5
)6"/mbol m,_G6G, d,)6"/mbol m O (p6G)_)D6G,,R at D.G#G<. "i veo el gr(fico en una terminal $xt la
etiqueta no se ver( mu/ bien'
pero si utili-o una terminal &ostscript me2orada obtengo'
"i se quiere ver en una ventana el gr(fico correcto es necesario utili-ar otro tipo de terminal que no sea
$xt. 3sualmente se utili-a una terminal LDD que se obtiene con set terminal xDD en%anced / que
permite ver la etiqueta correctamente.
!tros comandos "tiles:
"i observan algunos de los gr(ficos que %icimos ver(n que los valores indicados en los e2es no aparecen
siempre con la misma cantidad de decimales o el mismo formato. &ara corregir esto se puede definir el
formato que se quiere utili-ar en un e2e dado mediante el comando set format *e2e+ *formato+#
donde *e2e+ es el e2e sobre el cual se aplicar( (x# /# o -) / *formato+ es un formato parecido al
utili-ado en Jortran que especifica el formato. &or e2emplo# set format / S.Gf indica que los
valores indicados en el e2e ; aparecer(n como reales con dos decimales. &ara consultar los posibles
formatos ver el %elp (%elp format).
8tro comando interesante es el comando load. Auando uno tiene que %acer una serie de gr(ficos para
un traba2o donde todos tienen el mismo formato# las mismas etiquetas# etc. / lo !nico que cambia es el
con2unto de datos debera repetir una / otra ve- la misma serie de comandos cambiando el nombre del
arc%ivo de datos / el arc%ivo de salida del gr(fico. Existe un comando en Gnuplot que permite e2ecutar
como instrucciones comandos includos en un arc%ivo de texto que se lee con el comando load. &or
e2emplo# si tenemos que graficar una / otra ve- el mismo gr(fico de (ngulo de fase vs. polari-acin
reducida para diferentes con2untos de datos podemos %acer un arc%ivo# al que llamaremos
instrucciones.gpl# que contenga'
set si-e <.\#<.\
set title Jase vs. &olari-acion
set xlabel Jase (grados)
set /label &ol (S)
set format / S.Df
set format x S.<f
set terminal postscript en%anced
set output sale.eps
plot ><':<? datos.dat u F'D<'T $ e pt F# <.
unset output
set terminal $xt
unset si-e
unset title
unset xlabel
unset /label
unset format /
unset format x
Luego de crear el arc%ivo instrucciones.gpl se lo lee con load instrucciones.gpl / se obtendr( el
gr(fico en el arc%ivo de salida sale.eps. Auando se tenga un nuevo con2unto de datos se reempla-a el
nombre en el comando plot / se cambia el nombre del arc%ivo de salida / se puede reutili-ar con la
garanta de que todos los gr(ficos ser(n iguales.

Vous aimerez peut-être aussi