Barras de error y gnuplot

Cuando tomamos datos experimentales y luego realizamos cálculos sobre esos datos o directamente los representamos, es muy útil utilizar barras de errores para tener a simple vista una idea de la exactitud de nuestras medidas y cálculos.

Gnuplot nos ofrece la posibilidad de representar nuestros datos con barras de errores, en mi opinión, de una forma poco atractiva. Así que estuve dándole vueltas al tema hasta que conseguí el estilo exacto que me gustaba para esas dichosas barras y a continuación os desgrano su funcionamiento.

Ejemplo de ajuste de unos datos con información de errores para el eje x e y

En primer lugar tenemos el fichero de datos que vamos a usar para generar la gráfica de ejemplo que puede verse arriba:

5 7 1 1.5

10 9 1 2

15 16 1.5 1.5

20 19 2 2

25 24 2.4 2.5

30 29 3 3.1

Por cada línea tenemos cuatro datos, que serán:

  1. x
  2. y
  3. error de la muestra/cálculo en x
  4. error de la muestra/cálculo en y

Y a continuación vamos a ver el script de gnuplot completo para explicar los pasos necesarios para conseguir estas barras de error:

# Definir tipo de salida para gnuplot
set term postscript eps color solid rounded blacktext “Helvetica” 20 enhanced

# Nombre de los ejes
set xlabel “x”
set ylabel “y”

# Establecer rejilla
set grid

# Establecer rango de los datos para el eje x e y
set yrange [0:40]
set xrange [0:40]

# Sitúa la leyenda abajo a la derecha
set key right bottom

# Nombre del fichero en el que guardaremos la gráfica
set output ‘ejemplo_barras_errores.eps’

# Función de ajuste para los datos
f(x) = a*x + b

# Ajuste de los datos según la función f
fit f(x) ‘datos.txt’ u 1:2 via a, b

# Pintar la función, por un lado se pinta el ajuste y por otro los datos
plot f(x) lc rgb “blue”, \
‘datos.txt’ u 1:2:3:4 with xyerrorbars lc rgb “red” notitle, \
‘datos.txt’ u 1:2 with points pointtype 7 lc rgb “white” notitle, \
‘datos.txt’ u 1:2 with points pointtype 6 lc rgb “red” title ‘x:y’

En color rojo aparecen los puntos claves del script para generar la gráfica.

En primer lugar hay que indicar que la salida de gnuplot tendrá líneas sólidas, por ello se incluye el comando solid en la orden set term.

El resto del script es la configuración básica para la visualización de una gráfica estándar en gnuplot, incluyendo un ajuste de los datos (que veremos en próximos posts).

Lo importante llega con el comando plot. El comando dibuja en primer lugar el ajuste de los datos realizado anteriormente en f(x).  Los siguientes parámetros para el comando plot realizan las siguientes funciones:

‘datos.txt’ u 1:2:3:4 with xyerrorbars lc rgb “red” notitle,

Plot pintará los puntos definidos en el fichero tomando (x,y) como las posiciones uno y dos de cada línea y el error para x y el error para y como las posiciones 3 y 4 de cada línea. El resultado es el que sigue para cada punto (en rojo):

No está mal, pero a mi personalmente me gusta tener un círculo que marque el punto en cuestión.

‘datos.txt’ u 1:2 with points pointtype 7 lc rgb “white” notitle,

En esta ocasión lo que estamos pintando son los valores x,y con un punto blanco solido. Este es el resultado si juntamos el dibujo de las barras de errores y este último punto:

El motivo de este círculo es “borrar” las barras de errores dentro de lo que será el círculo que sitúa el punto, que al no ser sólido, dejaba ver las líneas dentro.

‘datos.txt’ u 1:2 with points pointtype 6 lc rgb “red” title ‘x:y’

Finalmente pintamos el círculo que marcara definitivamente los puntos (x,y) de nuestros datos. Uniendo las barras de errores, el punto blanco solido y el círculo rojo obtenemos lo siguiente:

No es que sea una forma muy óptima de generar la gráfica, pero el resultado final a mi me parece mucho más presentable que cuando usamos las barras de error en solitario.

Espero que os sirva de ayuda y podáis generar gráficas con un estilo espectacular.

Otros recursos

demo sobre barras de errores de gnuplot

Anuncios

Publicado el septiembre 30, 2012 en gnuplot y etiquetado en , , , . Guarda el enlace permanente. 2 comentarios.

  1. Excelente articulo, realmente gnuplot es un programa muy bueno, pero al igual que Latex necesita de mucho tiempo para sacarle el jugo. Aunque una vez se sepa manejar es posible hacer casi cualquier gráfico.

    Saludos

  2. Lo malo para los que empezamos con gnuplot es que no hay un tutorial por la red claro con todas las funciones que podemos hacer. Toda la información es de ciertos ejemplos y muchas veces en ingles, gnuplot tiene mas potencial.. estaria bien encontrar una página con un listado de funciones de gnuplor con su definición completita.

    Ahí dejo el reto.. xD

    Saludos

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: