gnuplot

Imagenes de fodey.com
MANUAL DE GNUPLOT EN ESPAÑOL
PÁGINAS DE APOYO A GNUPLOT
Qué es gnuplot… podemos ir a la Wikipedia GNUPLOT wikipedia Toda la información, ejemplos, manual, descargas y manuales oficiales en: gnuplot home
La familia de gnuplot es el grupo: GNU-Octave.
Comienza con: Manual gnuplot de Gleducar
Continua con: GNUPLOT 4.0 – A Brief Manual and Tutorial de Duke University
Termina con: MANUAL DE GNUPLOT DE KAWANO de T-16 Nuclear Physics Group
DESCARGAS E INSTALACIÓN
Para instalar gnuplot en linux hay varios caminos: desde una terminal (escribiendo $apt-get install gnuplot), usando el Gestor de paquetes Synaptic (buscando gnuplot e instalado gnuplot y los paquetes necesarios) o buscando los paquetes desde Internet (por ejemplo Ubuntu Software Packages). Los archivos que necesita Linux son: gnuplot, gnuplot-nox y gnuplot-x11.
La versión para WINDOWS de GNUPLOT
La versión para MAC de GNUPLOT, necesitas descargar e instalar: AquaTerm y Gnuplot.
Ahora se necesitan crear dos archivos: “.profile” y “.gnuplot” (deben ser creados colocados en el archivo “home” y deben tener derecho para ejecutarse $ chmod +x .profile .gnuplot).
$ cat .profile
export PATH=”.:$PATH:/usr/local/bin”
$ cat .gnuplot
set term aqua
ENTRAR Y SALIR DE GNUPLOT DESDE UNA TERMINAL
$ gnuplot # entrar a gnuplot desde bash
gnuplot> # DespuEs del simbolo: #, todo es comentario
gnuplot> help # ayuda en gnuplot
gnuplot> help set #Ayuda sobre set
gnuplot> help functions # Ayuda sobre funciones
gnuplot> plot sin(x) # Grafica la funciOn “seno”
gnuplot> splot sin(x*y)/(x**2+y**2) # Graficar en 3D
gnuplot> exit # Salir de gnuplot (también sirve “quit”)
SCRIPT para GNUPLOT
Necesita un crear un PROGRAMA en C (PASO 1). Crea un archivo llamado “cal_num.c” con el texto azul que hay abajo. El programa genera un ARCHIVO DE DATOS (PASO 2). Copia el texto rojo para crear un archivo llamado “cal_num.p”, este es un SCRIPT para ser usado por GNUPLOT (PASO 3). GNUPLOT usa el ARCHIVO DE DATOS (PASO 4) que es creado por el programa de c. GNUPLOT crea un archivo POSTSCRIPT (PASO 5), el cual se puede ver como una gráfica.
Este ejercicio es sacado de la página:
http://t16web.lanl.gov/Kawano/gnuplot/intro/plotcalc-e.html
Requisitos para ese ejercicio
$ ls # listar los archivos que necesito
cal_num.c # programa en C
cal_num.p # script para gnuplotPROGRAMA EN C: cal_num.c
$ gcc num_cal.c -lm # compilaciOn del programa
$ ./a.out # el programa se ejecuta
Con esto se genera un ARCHIVO DE DATOS: num_cal.dat
$ cat cal_num.dat # ver archivo de datos
SCRIPT para GNUPLOT: cal_num.p
$ gnuplot cal_num.p # ejecuta el script usando gnuplot
RESULTADO
$ ls # archivos al final del proceso
cal_num.c # programa en C
cal_num.dat # lo generO cal_mun.c
cal_num.p # script para gnuplot
cal_num.ps # postscript creado por gnuplot
/* PROGRAMA EN C, llamado “cal_num.c”
#include <stdio.h>
#include <math.h>
main()
{
int i;
double x,y,z1,z2,d; /* variables */
FILE *resultados; /* archivo que guarda resultados*/
resultados=fopen(“cal_num.dat”, “w”);
d = 0.1; /* condicion inicial para d */
x = 0.0; /* condicion inicial para x */
for (i=0 ; i<50 ; i++) {
x += d; /* x = x + d */
y = exp(-x); /* funcion a calular */
z1 = (6 – 2*x)/(6 + 4*x + x*x); /* segunda funcion a calcular */
z2 = (6 – 4*x + x*x)/(6 + 2*x); /* tercera funcion a calcular */
printf(“% 6.2f % 11.4e % 11.4e % 11.4e\n”,x,y,z1,z2);
/* resultados mostrados en pantalla */
fprintf(resultados, “% 6.2f % 11.4e % 11.4e % 11.4e\n”,x,y,z1,z2); /* los resultados enviados al archivo */
/* resultados: || x || y || z1 || z2 || */
}
fclose(resultados); /* cerrar archivo */
}
/* FIN DEL PROGRAMA EN C */
#########################################
# SCRIPT para GNUPLOT, Archivo llamado “cal_num.p” #
##########################################
#########################################
# MODIFICANDO PARAMETROS = SET
#########################################
reset # poniendo en ceros los sets
set xlabel “x” # poner etiqueta al eje x
set ylabel “y = exp(-x)” # poner etiqueta al eje y
set title “Pade approximation” # poner titulo a la graficaset xrange [0:2] # poner rango eje x [a:b]
set yrange [0:1] # poner rango eje y [a:b]set xtics 1 # poner graduacion eje x aumentando 1 unidad
set mxtics 5 # poner 5 pequeñas graduaciones entre cada stic
set ytics 0.5 # poner graduacion eje y aumentando en 0.5
set mytics 10 # poner 10 graduaciones entre cada stic# DIBUJANDO LA GRAFICA
# plot archivo usando las columnas 1,2,3,4 con titulo y con lineas
plot “cal_num.dat” using 1:2 title “Analytical” with lines, \
“cal_num.dat” using 1:3 title “L=1, M=2″ with lines,\
“cal_num.dat” using 1:4 title “L=2, M=1″ with lines# CREANDO UN GRAFICO EN POSTSCRIPT
set terminal postscript # poniendo la salida (terminal) en postscript
set output “cal_num.ps” # dirigir la salida al archivo .ps
replot # dibujar nuevamente para el archivo postscript
reset # regresando los sets a default# FIN DEL SCRIPT PARA GNUPLOT
GRAFICA OBTENIDA
Segundo Script paragnuplot “force.p”
Basado en la página de DUKE
http://www.duke.edu/~hpgavin/gnuplot.html
#################################
# Gnuplot script usando un archivo de datos “force.dat”
# Este archivo scrip de gnuplot se llama force.p
# Para activar este postscript se debe iniciar gnuplot y dar la siguiente orden: load ‘force.p’
##################################################################
# MODIFICANDO PARAMETROS = SET
#################################
set autoscale # escala automática de los ejes
unset log # remueve cualquier escala logarítmica (logscale)
unset label # remueve cualquier etiqueta previa
set grid # poner rejilla
set xtic automatic # poner graduacion en x automaticamente
set xtic automatic # poner graduacion en y automaticamente
set title “Force Deflection Data for a Beam and a Column” # titulo de la gráfica
set xlabel “Deflection (meters)” # etiqueta del eje x
set ylabel “Force (kN)” # etiqueta del eje y
set key 0.01,100 # posicion del identificador gráfico
# set key top left # poner el identificador arriba a la izquierda
set key box # poner el identificador en un cuadro
set label “Yield Point” at 0.003,260 # etiqueta al punto (a,b)
set arrow from 0.0028,250 to 0.003,280 # colocar una flecha de (a,b) a (c,d)
set xrange [0.0:0.022] # poner rango a x [a,b]
set yrange [0:325] # poner rango a y [c,d]#############################
# DIBUJANDO LA GRAFICA
#############################
plot “force.dat” using 1:2 title ‘Column’ with linespoints, “force.dat” using 1:3 title ‘Beam’ with points # CARGANDO ARCHIVOS PARA GRAFICAR
#
# ESTE ES EL ARCHIVO “force.dat”
# Datos Fuerza-Flexión para una barr
# Deflexion Col-Force Beam-Force
# 0.000 0 0
# 0.001 104 51
# 0.002 202 101
# 0.003 298 148
# 0.0031 290 149
# 0.004 289 201
# 0.0041 291 209
# 0.005 310 250
# 0.010 311 260
# 0.020 280 240
###############################
# CREAR EL POSTSCRIPT
##############################
# EXPORTAR A UN “png” y “ps”
# set terminal png # gnuplot ajusta los ajustes de la salida al tipo png antes de salir
# set output “forces.png” # La salida al fichero.png
# replot # volver a graficar
set terminal postscript color solid # pone la salida (terminal) como postscript
set output “force.ps” # marca como salida el fichero .ps
replot # vuelve a graficar
set output # marca la salida al fichero actual
set terminal pop # pop: es equivalente a “salvar terminal” y “cargar terminal” pero sin tener acceso al sistema de ficheros
# set terminal push # push: recuerda la terminal actual incluyendo sus ajustes
Tercer Script para gnuplot “plotexp.p”
Basado en la página de kawano
http://t16web.lanl.gov/Kawano/gnuplot/intro/plotexp-e.html
# script ajuste de la funcion: y = -0.01687 x + 1.3512
# Utiliza un archivo de datos experimentales y una funciOn teOrica
# existe un archivo que tiene los datos con los que se va a trabajar
# el archivo se llama “plotexp.dat” (tienes que descargarlo)
# Muestra algo parecido a:
# # Data No. 1
# 2.1500E-02 1.3060E+00 5.3098E-02
# 2.3900E-02 1.2220E+00 4.7043E-02
# ….
# 1.1330E+00 1.2670E+00 4.2289E-02# # Data No. 2
# 2.4000E-02 1.2970E+00 3.1387E-02
# 8.0000E-02 1.3300E+00 2.8728E-02
# ….
# 7.4000E+00 1.1860E+00 2.5618E-02# # Data No.3
# 2.2500E-02 1.3310E+00 3.4606E-02
# ….
# 2.1296E+01 1.0310E+00 3.1961E-02########################
# GRAFICANDO LOS DATOS
#######################
# creando una grafica con los datos experimentales
f(x)= -0.01687*x + 1.3512
set xlabel “Energy [MeV]” # poner etiqueta al eje x
set ylabel “Cross Section [b]” # poner etiqueta al eje y
########################
set xrange [0.01:20] # rango de x [a:b]
set yrange [0:2] # rango de y [c:d]
set logscale x # escala logaritmica en x
########################
set ytics 1 # poner graduacion al eje y aumentando 1 unidad
set mytics 10 # poner 10 pequeÃas graduaciones entre cada stic
set grid # poner rejilla
########################
plot f(x) with lines,\
“plotexp.dat” index 0:0 using 1:2:3 title “A. Smith (1992)” with yerrorbars linestyle 2,\
“plotexp.dat” index 1:1 using 1:2:3 title “B. Smith (1993)” with yerrorbars linestyle 3,\
“plotexp.dat” index 2:2 using 1:2:3 title “C. Smith (1999)” with yerrorbars linestyle 4
# index se usa para acceder a los bloques de datos “Data No.1 = index 0:0″
# “Data No.2 = index 1:1″
# “Data No.3 = indez 2:2″
# “Data No.2 y No.3 = index 1:2″
# with yerrorbars agrega barras de error
# la tercera columna de datos se refieren a las barras de error positivas
# la cuarta columna de datos se refieren a las barras de error negativas
# NOTA. si los errores experimentales fueran porcentuales using 1:2:($2*$3/100.0)
################################################
# Generar un postscript
########################
set terminal postscript # modo de salida en postscript
set output “plotexp.ps” # salida al archivo .ps
replot # volver a graficar
set terminal pop
quitpause -1 # mantiene la grafica en la pantalla hasta que se presione ‘return’
########################
RESUMEN
#####################################
# MODIFICANDO PARÁMETROS = SET = PONER
#####################################
# PARA EL EJE x
set xrange [0.01:20] # RANGO [a:b]
set xlabel “Eje X” # ETIQUETA DEL EJE
unset label # REMUEVE ETIQUETA
set label “Punto (x,y)” at 0.003,260 # PONER ETIQUETA AL PUNTO (a,b)
set xtics 1 # GRADUACION EN 1 UNIDAD
set mxtics 5 # PONER 5 GRADUACIONES ENTRE STICS
set xtic automatic # GRADUACION AUTOMATICA
set xtics (“April” 1, “May” 2, “June” 3, “July” 4) # TICS PERSONALIZADOS EN
set tics out # TICS AL EXTERIOR
set samples 30 # USAR 30 MUESTRAS
set xzeroaxes #PONER EJE 0
set border # PONER EJES DE BORDE
set grid # poner rejilla
set logscale x # ESCALA LOGARITMICA
set autoscale # ESCALA AUTOMATICA DE EJES
unset log # REMUEVE ESCALA LOGARITMICA
set key 0.01,100 # POSICION DEL IDENTIFICADOR GRAFICO
set key top left # PONER EL IDENTIFICADOR ARRIBA – IZQUIERDA
set key box # PONER IDENTIFICADOR EN UN CUADRO
set arrow from 0.0028,250 to 0.003,280 # COLOCAR UNA FLECHA DE (a,b) A (c,d)
reset # PONIENDO EN CEROS LOS “SETS”
#############################
# DIBUJANDO LA GRAFICA
#############################
plot sin(x) # GRAFICANDO UNA FUNCION
plot “force.dat” using 1:2 title ‘Datos de archivo’ with linespoint # CARGANDO ARCHIVOS PARA GRAFICAR
fit function ‘datos.dat’ using 1:2 via a1, b1 # AJUSTANDO (FIT) UNA FUNCION A UNA BASE DE DATOS
pause -1 # mantiene la grafica en la pantalla hasta que se presione ‘return’
plot x**2 with lines, “plotexp.dat” index 0:0 using 1:2:3 title “Datos a graficados” with yerrorbars linestyle 2 # GRAFICANDO UNA FUNCION Y DATOS, INCLUYENDO ERRORES EXPERIMENTALES
# index se usa para acceder a los bloques de datos “Data No.1 = index 0:0″
# “Data No.2 = index 1:1″
# “Data No.3 = indez 2:2″
# “Data No.2 y No.3 = index 1:2″
# with yerrorbars agrega barras de error
# la tercera columna de datos se refieren a las barras de error positivas
# la cuarta columna de datos se refieren a las barras de error negativas
# NOTA. si los errores experimentales fueran porcentuales using 1:2:($2*$3/100.0)
##############################
# CREAR EL POSTSCRIPT
##############################
## CAMBIANDO LA SALIDA DE TERMINAL AL MODO REQUERIDO
set terminal png # AJUSTE AL TIPO PNG
set terminal postscript color solid # AJUSTE AL TIPO POSTSCRIPT, MANTENIENDO EL COLOR EN EL ARCHIVO
set terminal postscript enhanced #AJUSTE AL TIPO POSTSCRIPT, PERMITIENDO CARACTERES ESPECIALES {/Symbol a} (Las letras griegas pueden ser mostradas por {/Symbol a}. Esto daría “alfa” la cual corresponde a “a”. La relación del Symbol y el alfabeto se puede obtener con help symbol.)
## DIRIGIENDO LA SALIDA A UN FICHERO
set output “fichero.ps” # MARCAR COMO SALIDA AL FICHERO.PS
replot # PARA VOLVER A GRAFICAR Y MANDARLO AL FICHERO (ARCHIVO)
## RECUPERANDO TERMINAL / CERRENDO ARCHIVO
set output # SALIDA ESTANDAR
set terminal pop # pop: ES EQUIVALENTE A “SALVAR TERMINAL” Y “CARGAR TERMINAL” PERO SIN TENER ACCESO AL SISTEMA DE FICHEROS
set terminal push # push: RECUERDA LA TERMINAL ACTUAL INCLUYENDO SUS AJUSTES
##################################
# EJEMPLOS interactivos LINEA POR LINEA
##################################
set terminal postscript eps enhanced
set key spacing 1.3
set xrange [ 0 : pi ]
set yrange [ 0 : 1.5 ]
plot sin(x)**2 ti “sin^2(x)”, \
sin(x)**3 ti “sin^3(x)”,\
sqrt(sin(x)) ti “sin^{1/2}(x)”
set logscale y
set yrange [1:50]
set ytics (1,2,5,10,20,50)
set format y “%2.0t{/Symbol \327}10^{%L}”
set lmargin 8
set terminal postscript eps enhanced
plot exp(x)/x
set contour base
set isosamples 40,40
splot (sin(x)*sin(y))/(x*y)
set multiplot # INICIAR MULTIPLOT
set size .5,.5 # DIVIDIR AREA DE DIBUJO
set origin 0,.5 # ORIGEN DEL GRAFICO
plot x**2 # GRAFICO
clear # BORRAR GRAFICO
unset multiplot # SALIR DE MULTIPLOT
##################################
GLOSARIO COMANDOS GNUPLOT
set # PONER
unset # QUITAR
title # TITULO
key # IDENTIFICADOR
label # ETIQUETA
xtics n # CAMBIAR LA GRADUACION EN X CADA n UNIDADES
xlabel # ETIQUETA EN x
xrange – RANGO EN x [a:b]
set label “TITULO PUNTO (a,b)” at a,b # TITULO A UN PUNTO EN a,b
grid # REJILLA
logscale x # ESCALA LOGARITMICA
fit function ‘datos.dat’ using 1:2 via a1, b1 # AJUSTE FUNCION-DATOS
multiplot # MULTIGRAFICAS
size # TAMAÑO (DIVISION DE AREA)
origin # ORIGEN DE GRAFICO
terminal # DEFINR SALIDA GRAFICA
output # SALIDA GRAFICA
#######################################################
NOTA SOBRE LA ESCRITURA EN GNUPLOT
# ORDEN GNUPLOT – - – - – - – - – - – - – - – - – - – COMENTARIO
esta es una orden para gnuplot # ESTE ES UN COMENTARIO PERMITIDO EN GNUPLOT
#######################################################
gnuplot en Mac usando: Fink y Gretl
Imagen hecha con: fodey.com (Gracias!)
Gnuplot es un programa muy flexible para generar gráficas de funciones y datos. Este programa es compatible con los sistemas operativos más populares (Linux, UNIX, Windows, Mac OS X…). El origen de gnuplot data de 1986. Gnuplot puede producir sus resultados directamente en pantalla, así como en multitud de formatos de imagen, como PNG, EPS, SVG, JPEG, etc. Se puede usar interactivamente o en modo por lotes (batch), usando scripts. Este programa tiene gran base de usuarios y está convenientemente mantenido por sus desarrolladores. Gnuplot es la herramienta de dibujo de gráficas del programa GNU Octave. (Wikipedia – Gnuplot)
- Página oficial del programa (en inglés)
- Gráficas de ejemplo (en inglés)
- GNUPLOT: herramienta para gráficos de funciones y datos
- Curso de gnuplot para cómputo científico (PDF)
- Preguntas poco frecuentes sobre gnuplot (en inglés)
- LaTeX y el programa generador de gráficas Gnuplot (PDF) (en inglés)
- Visualiza tus datos con gnuplot — Tutorial de IBM (en inglés)
- Tutorial de Petr Mikulik (en inglés)
Fink, es un proyecto que une a UNIX para Darwin y MAC OS, incluye aplicaciones como gnuplot. Fink permite ejecutar comandos como: dpkg y apt-get para proveer un poderoso manejo de paquetes. gretl (Gnu Regression, Econometrics and Time-series Library) es una plataforma de paquetes de sofware para análisis econométrico, escrito en el lenguaje C. Tiene incluidos entre sus paquetes a gnuplot, una vez instalado sólo debes dar la orden “fink install gnuplot” desde una terminal de OSX.
En Mac, una vez que se ha instalado el programa se abre una terminal y se debe ir hacia el directorio “/usr/local/bin/” en el que se encuentra “gnuplot”, para ejecutarlo sólo habrá que escribir “./gnuplot” o simplemente escribir desde la terminal (sin importar en que directorio estás) “/usr/local/bin/gnuplot”. AquaTerm es el interprete gráfico que representa los comandos de gnuplot desde la terminal de shell.
Trabajando un poco más podemos encontrar versiones para nuestro sistema operativo preferido. Existe la versión para Windows, la versión para MSDOS, la versión para Mac (pero que mejor es usar la FINK que ya incluye a gnuplot) y, por supuesto, la versión de Linux. Se instala la versión de Linux una vez descargado o también pueden usar Synaptic para instalar GNUplot.
Los Manuales GNUplot necesarios para adentrarnos en este interprete de comandos gráficos: Manual de GNUplot, Curso de Gnuplot para cómputo científico, Manual de GNUplot de la escuela de ingeniería, Gnuplot on Mac OSX, Preguntas Frecuentes sobre Gnuplot y algunas gráficas interesantes para probar con Gnuplot en Some Fun with GNUplot.





Alberto escribió
Hola estoy intentando aprender a usar una herramienta con el gnuplot pero no encuentro manuales en español. Soy inexperto en gnuplot, y lo necesito para mi proyecto de fin de carrera, si no no me dan el título, y es lo único que me queda. Tengo una curva ya hecha con unos datos en excel, ¿como la adapto al gnuplot? y lo mas importante, ¿una vez tengo la curva en el gnuplot, como crea una ecuacion que se adapte a esa curva de puntos? Por favor si alguien puede ayudarme que me escriba a coru1980@hotmail.com
Muchisimas gracias
Deregreso:) « Cpcls escribió
[...] gnuplot [...]
Geschmacksverwirrung « Cpcls escribió
[...] gnuplot [...]