lunes, 5 de octubre de 2009

Gráficas con gnuplot

Supongamos que disponemos de un fichero de log con valores de ocupación de una partición que hemos ido recolectando. Vamos a hacer uso de la aplicación gnuplot para realizar gráficas usando dichos datos.

Lo primero de todo será instalar gnuplot. Así pues, como usuario root ejecutar:

# aptitude install gnuplot

Vamos a suponer que el fichero de log tiene el siguiente formato:

2009-10-05:08:00 50

siendo la primera columna la fecha y hora y la segunda columna el porcentaje de ocupación.

Gnuplot usa como entrada un fichero de texto donde se especifica el formato y configuración del gráfico a crear. Nuestro fichero de entrada será el siguiente:

set encoding iso_8859_1
set term png
set xdata time
set ylabel "Uso"
set ytics nomirror
set yrange [0:100]
set grid ytics
set xtics nomirror rotate 2592000
set style fill solid 1.0
set timefmt "%Y-%m-%d:%H:M"
set format x "%m"
set xlabel "Meses"

set out "uso_home.png"
set xrange ["2009-01-01:00:00":"2009-10-03:23:59"]
set title "Ocupacion /home en 2009"
plot "ocupacion.log" using 1:2 with boxes


y lo llamaremos gnuplot.in, por ejemplo. Este fichero de entrada supone que los datos a dibujar están en el fichero ocupacion.log.

Si ejecutamos gnuplot:

$ gnuplot gnuplot.in

obtendremos el fichero con la gráfica. Os pongo un ejemplo de cómo quedaría:



Si nos fijamos en el fichero de entrada a gnuplot, se pueden cambiar bastantes parámetros para conseguir: estilos de linea diferentes, rangos de fecha diferentes, distinto valor de máximo de la gráfica del eje y, etc.