Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Gnuplot PDF
Gnuplot PDF
25 - 2 -
Cuando abramos el terminal, nos aparecer una pantalla como la siguiente. En ella
tecleamos el nombre del paquete que hemos instalado, en este caso drgenius,
pulsamos la tecla Enter y ya lo podemos utilizar.
25 - 4 -
25 - 6 -
2. SINTAXIS DE GNUPLOT
2.1. INTRODUCCIN DE ECUACIONES Y FUNCIONES
Para Gnuplot la variable independiente se llama X en grficos bidimensionales, y X e
Y en los tridimensionales
En general la sintaxis (y precedencia) a la hora definir frmulas es la misma que se
usa en Java o en C. La diferencia ms destacada es que los exponentes se expresan
precedidos por "**". Se pueden usar parntesis para cambiar el orden de evaluacin.
La lista de todos los operadores se puede obtener con "help expressions" y luego
"operators" desde el prompt de Gnuplot. Con esto obtenemos la siguiente pantalla:
25 - 7 -
f ( x) = 1
x si 1 x < 2
f(x) = 0<=x && x<1 ? sin(x) : 1<=x && x<2 ? 1/x : 1/0
plot f(x)
La parte 1/0 se la ponemos para indicarle que en el resto no est definida. Cunado
pulsamos Enter obtenemos la siguiente pantalla:
25 - 8 -
25 - 9 -
Utilizando los comandos set y show para establecer y mostrar su valor. Estas
opciones se mantienen vigentes hasta que se modifiquen nuevamente con el
comando set
Como parmetros especficos de una orden de representacin grfica (plot y
splot). A diferencia del caso anterior, son opciones que slo afecta a la
representacin grfica actual.
2.3. UN EJEMPLO
Supongamos que queremos obtener una grfica de sin(x). Entonces deberamos
escribir lo siguiente:
Gnuplot> set title "Grfica del seno"
Gnuplot> plot [-pi:pi] sin(x)
25 - 10 -
Esto har aparecer otra ventana con la grfica. Si nos equivocamos o queremos
realizar alguna modificacin podemos utilizar los cursores para movernos por el
historial (arriba o abajo) y desplazar el cursor al lugar donde queremos hacer el
cambio (izquierda o derecha). De esta manera es muy cmodo obtener la grfica de
sin(2*x).
Gnuplot> set title "Grfica del seno del ngulo doble"
Gnuplot> plot [-pi:pi] sin(2*x)
25 - 11 -
3. GRFICAS 2D
La orden para realizar representaciones bidimensionales es plot. Su uso ms simple es
el siguiente:
plot funcion
plot sin(x)*(1-exp(x))
25 - 12 -
plot cosh(x)
25 - 13 -
La escala elegida para esta grfica no demasiado buena. Nos dice que para valores
grandes de X la funcin toma valores muy grandes, pero si queremos ver lo que pasa
en un entorno de 0, tendremos que cambiar la escala. Gnuplot utiliza un mecanismo
de autoescalado que ajusta la grfica de forma que quepa en la superficie de dibujo.
La sintaxis para cambiar la escala es la siguiente:
Vamos a dibujar la grfica del coseno hiperblico observando lo que pasa cerca del
origen. Escribimos
Ntese que si se cambia la escala para un grfico, permanecer cambiada para las
siguientes representaciones. Para volver a la escala original existen los comandos:
set autoscale para permitir que los ejes se autoajusten para que la grfica quede
lo mejor posible dentro del rea de dibujo. Es posible especificar los ejes a los
que se permite el autoescalado.
set autoscale
plot [][0,10] cosh(x).
4. GRFICAS 3D
El comando para realizar grficas tridimensionales es splot. Su forma ms sencilla es
la siguiente:
splot funcion
splot -x+y+3*cos(x*y)
Y obtendramos lo siguiente:
25 - 15 -
Para modificar los rangos de las variables se pueden usar las opciones "set xrange
[x1:x2]", "set yrange [y1:y2]", "set zrange [z1:z1]". Es importante recordar que si se
modifica un rango para una grfica, ese mismo rango se utilizar para todas las
grficas posteriores.
Si se desea volver a activar el autoescalado de Gnuplot se puede hacer tecleando "set
autoescale z".
4.1. ELEMENTOS OCULTOS EN 3D
Algunas veces los grficos 3D pueden ser complicados de interpretar porque se
mezclan lneas que estn en primer plano con lneas que, si la figura fuera opaca,
estaran ocultas. Veamos por ejemplo la siguiente funcin f ( x) = 2( x 2 + y 2 )e x y
2
En esta grfica se ha usado el comando "set grid" para ver la rejilla inferior. Para
intentar hacer ms visible la grfica usaremos el comando "hidden3d":
set hidden3d
replot
25 - 17 -
Por defecto ambas tasas tienen valor 10, e indican el tamao de la rejilla de puntos en
la que se evala la grfica. Probemos a aumentar la resolucin del grfico:
25 - 18 -
Es importante advertir que cuanto mayor sea la resolucin del grfico, ms tiempo
tardar Gnuplot en procesar la grfica. En general es raro utilizar tasas superiores a
100.
4.3. LNEAS DE CONTORNO.
Las lneas de contorno tambin facilitan la visualizacin de grficos tridimensionales.
Pueden elegirse que aparezcan en un plano, al estilo de lneas de nivel, o
directamente sobre la propia grfica. Los comandos relacionados con las lneas de
contorno son los siguientes:
set hidden3d
set contour base
splot [-2:2] [-2:2] 2*(x**2 + y**2)*exp(-x**2 - y**2)
set nohidden3d
set contour surface
splot [-2:2] [-2:2] 2*(x**2 + y**2)*exp(-x**2 - y**2)
25 - 20 -
25 - 21 -
Para ms informacin, consltese "help set surface". La forma en que se dibujan las
lneas de contorno puede variarse con la opcin "cntrparam". Por ejemplo si slo
interesan las lneas de contorno para z=.2,.4,.6, se puede conseguir escribiendo el
siguiente comando antes de dibujar la grfica:
Donde rot_x y rot_z indican los ngulos (en grados) que se debe rotar la grfica
entorno a los ejes X y Z de un sistema de referencia alineado con la pantalla, en que
el eje horizontal es el eje X, el vertical es el eje Y, y el eje Z sera perpendicular al
monitor. El tercer nmero controla la escala de todo el grfico (acta como un zoom)
y el cuarto slo la escala del eje Z. Los valores por defecto son "set view 60,30,1,1".
Ejemplos:
set hidden3d
set isosamples 30
splot [-2.5:2.5][-2.5,2.5] (x**2+3*y**2)*exp(1-(x**2+y**2))
25 - 22 -
25 - 23 -
25 - 24 -
25 - 25 -
5. REPRESENTACIONES PARAMTRICAS
Gnuplot permite representar ecuaciones paramtricas. Para cambiar al modo
paramtrico se debe teclear lo siguiente:
set parametric
set noparametric
set parametric
Al escribir esto la aplicacin nos informa que para las curvas se utilizar el
parmetro t y para las superficies se utilizarn los parmetros u y v.
25 - 26 -
Los valores de xrange e yrange indican los rangos que se van a dibujar en la grfica,
mientras que trange es el rango de valores que va a tomar la variable paramtrica t. Si
se indica un rango para el comando plot, este se referir al trange. La primera parte de
la ecuacin paramtrica nos da el valor de X, y la parte tras de la coma el valor de Y.
Veamos otro ejemplo:
set hidden3d
set grid
splot [-pi:pi][-pi:0] sin(v),cos(u),cos(v)+sin(u)
La mayor parte de las opciones para grficos 3D tambin se pueden usar en los
grficos paramtricos.
6. GRFICAS EN COORDENADAS POLARES
Para representar funciones en coordenadas polares tenemos que activar la opcin:
set polar
set nopolar
set polar
plot 3*cos(2*x)
25 - 29 -
Por defecto Gnuplot interpretar todos los ngulos en radianes. Para cambiar este
comportamiento se pueden usar las siguientes expresiones:
Las lneas que empiezan por # son comentarios y se ignoran. Es conveniente que los
datos estn en un fichero, por ejemplo area.dat, aunque tambin se podran introducir
en el prompt de Gnuplot. Se obtendra la representacin grfica con el siguiente
comando:
plot "area.dat"
set logscale
set data style linespoints
plot "area.dat"
25 - 31 -
Gnuplot tambin permite seleccionar las columnas que se van a representar una frente
a otra. Para ello es necesario aadir la opcin "using" al comando "plot". Por
ejemplo, para representar la tercera columna frente a la primera escribiremos:
set nologscale
set key bottom
plot "area.dat" using 1:3
25 - 32 -
Hay muchas opciones avanzadas para representar datos. Para mayor informacin se
recomienda consultar la ayuda en lnea "help plot datafile using".
-1 -4 16
0 -4 0
1 -4 16
2 -4 64
3 -4 144
4 -4 256
-4 -3 144
-3 -3 81
-2 -3 36
-1 -3 9
0 -3 0
1 -3 9
2 -3 36
3 -3 81
4 -3 144
-4 -2 64
-3 -2 36
-2 -2 16
-1 -2 4
0 -2 0
1 -2 4
2 -2 16
3 -2 36
4 -2 64
-4 -1 16
-3 -1 9
-2 -1 4
-1 -1 1
0 -1 0
1 -1 1
2 -1 4
3 -1 9
4 -1 16
-4 0 0
-3 0 0
-2 0 0
-1 0 0
0 0 0
1 0 0
2 0 0
3 0 0
25 - 34 -
4 0 0
-4 1 16
-3 1 9
-2 1 4
-1 1 1
01 0
11 1
21 4
31 9
4 1 16
-4 2 64
-3 2 36
-2 2 16
-1 2 4
02 0
12 4
2 2 16
3 2 36
4 2 64
-4 3 144
-3 3 81
-2 3 36
-1 3 9
03 0
13 9
2 3 36
3 3 81
4 3 144
-4 4 256
-3 4 144
-2 4 64
-1 4 16
04 0
1 4 16
2 4 64
3 4 144
4 4 256
Las dos primeras columnas del fichero son los valores de X e Y donde se ha evaluado
la tercera columna, que corresponde a la funcin f(x,y)=(x**2)*(y**2). Puede
25 - 35 -
observarse que cada vez que la variable Y cambia de valor se deja una lnea en
blanco en el fichero de datos. Esto indica a Gnuplot que no una los puntos que estn
arriba y debajo de la lnea en blanco. De esta forma se evita que aparezcan lneas que
emborronaran la grfica. Veamos la grfica resultante:
25 - 36 -
El nombre del fichero de salida se indica mediante el comando "set output". Veamos
un ejemplo en el que guardamos el resultado en un fichero png:
Todas las grficas que se generen a partir de ese momento se dirigirn al comando
"lpr" (imprimir en UN*X). Conviene de todas formas cerrar la salida con "set output"
y volverla a abrir entre grfica y grfica.
En general, para ver las posibilidades que ofrece un dispositivo de salida, se debe
ejecutar "help term disp", donde disp es el nombre del dispositivo en cuestin. Si se
necesita algn dispositivo que no est disponible, hay dos alternativas: recompilar
Gnuplot y aadir el soporte o utilizar otro dispositivo. Como ltima nota decir que los
distintos tipos de dispositivos nicamente adaptan la salida. Esta tendr que guardarse
luego en un fichero, mostrarse por pantalla o enviarse a un comando de shell para ser
procesada ms tarde.
25 - 38 -
9. USOS AVANZADOS
9.1. GUARDANDO Y CARGANDO SESIONES DE UN FICHERO
Gnuplot permite indicar el nombre de un fichero del que leer una serie de comandos.
Esto puede ser muy til para trabajar en modo batch (por ejemplo, generando grficas
desde un script), o para cargar una configuracin a la hora de representar grficas. El
comando para cargar comandos de un fichero es:
load "fichero.gp"
Gnuplot fichero.gp
save "fichero.gp"
25 - 39 -
Desde el prompt del shell, tecleando como parmetros una lista de ficheros.
Gnuplot leer y ejecutar secuencialmente estos ficheros.
#!/bin/usr/Gnuplot
De esta forma cuando se invoque el script desde el shell, este leer la primera
lnea y lanzar el programa Gnuplot para que interprete el resto del fichero.
$ ./Gnuplot.gp
set samples 30
plot [0:10] sin(x) with boxes
25 - 41 -
En este caso adems hemos aadido dos nuevos atributos del comando "plot", con lo
que conseguimos un reslutado ms vistoso.
Se pueden superponer tantas grficas como se deseen. Tambin es posible con
grficos 3D, y en coordenadas polares, cilndricas y esfricas, aunque no es posible
mezclarlas.
9.6. CAMBIANDO EL ESTILO DE LAS LNEAS
En el apartado anterior vimos que al invocar el comando "plot" se aadan las
opciones "with boxes" y "with impulses". Estas opciones permiten seleccionar el tipo
de lnea con la que se va representar, y facilita diferenciar varias grficas que se
muestran juntas, especialmente en dispositivos de salida monocromos. La opcin
"with" est tambin disponible desde el comando "splot".
En el caso anterior simplemente seleccionamos un tipo de lnea para una grfica en
concreto. Tambin es posible cambiar el estilo para todas las representaciones usando
los comandos:
El primero cambia el estilo para todas las representaciones de funciones, mientras que
la segunda lo hace para las representaciones de ficheros de datos. Tipo_de_linea
puede ser uno de los siguientes:
set multiplot
set size .5,.5
set origin 0,.5
plot x
set origin .5,.5
plot [0:1] sin(2*pi*x) with boxes
set origin 0,0
plot [-5:5] exp(-x**2/5) with steps
set origin .5,0
splot [-1:1][-1:1] x**2+y**2
set nomultiplot
25 - 43 -
Dependiendo del dispositivo de salida, las grficas no se dibujarn hasta que se pase a
modo normal con "set nomultiplot". En otras las grficas irn apareciendo pero no se
podr borrar la pantalla (con el comando "clear") o se borrarn todas las grficas.
Si el dispositivo de salida es el sistema X ("set term x11"), es posible obtener varias
grficas a la vez, cada una en su propia ventana. Para ello simplemente hay que pasar
un parmetro ms al comando "set":
25 - 44 -
25 - 45 -
EJERCICIOS:
.-Representa grficamente las siguientes funciones:
x 2 si 1 x < 1
f ( x) = 3 x 4 si 1 x < 4
sen( x) si 4 x < 8
f ( x) = x cox( x)
2
f ( x, y ) = x 2 y 2 e x
+ y2
f ( x, y ) =
x = 2 cos(u ) cos(v)
3 xy
1 + e x
+ y2
25 - 46 -