Gráficas bonitas con Ruby en Ubuntu

Vamos a utilizar la librería Gruff Graphs de Ruby (Galería de ejemplos). Necesitaremos, evidentemente, el intérprete de Ruby, además de la librería RMagick, necesaria para correr Gruff, y gem, para poder instalar librerías para Ruby fácilmente.

sudo aptitude install ruby rubygems librmagick-ruby

Ahora utilizamos el comando gem para instalar gruff, contestando afirmativamente cuando el programa nos pregunte si queremos instalar las dependencias necesarias.

sudo gem install gruff

Ahora podemos escribir nuestro script en Ruby que cree una imagen con los datos que le indiquemos. Por ejemplo, para crear un gráfico de barras:

#!/usr/bin/ruby

require 'rubygems'
require 'gruff'

g = Gruff::Line.new
g.title = "Mi gráfica de prueba"

g.data("Java", [24, 25, 18])
g.data("C", [17.5, 17, 16.5])
g.data("PHP", [4, 3.5, 9.5])
g.data("Python", [1, 6.5, 2.5])

g.labels = {0 => '2003', 1 => '2004', 2 => '2005'}

g.write('prueba.png')

Ejecutamos el script:

ruby prueba.rb

Y este es el resultado:
Gráfica Ubuntu

8 pensamientos en “Gráficas bonitas con Ruby en Ubuntu”

  1. En cualquier distro no, gons. Sólo en las que usen apt / aptitude.

    Se sobreentiende que si tienen los paquetes en sus repositorios o pueden usar los de los repositorios de Ubuntu también les servirá.

    1. Partiendo de la base que está hecho en Ruby debe de funcionar en cualquier distribución (e incluso en «Mundo Ventanuco» y MacOS) simplemente instalando convenientemente el lenguaje y las librerías indicadas, ¿no os parece? (cada uno que adapte la invocación a apt-get por lo que sea menester: yum & cia)

      Un saludo

  2. Hola que tal, se miran excelentes las graficas.

    Me gustaria saber si a traves de un graficador como este (por medio de un script), es posible abrir un archivo que contiene bloques de datos x,y. Cada bloque representan una curva, a un tiempo distinto. La intencion es generar una pelicula de la evolucion de estas curvas.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.