Hey there, Schon einmal von gruff gehört? Das ist eine praktische Library um schöne Charts mit Ruby zu bauen.

Installation

Der Name des Gem is gruff also füge gem 'gruff' deiner Gemfile hinzu und führe budle install aus.

Use it

I werde aus Zählerdaten ein Liniendiagramm erzeugen. Die Daten dazu werden von DataMapper in einer Datenbank verwaltet. Die Tabellen sehen so aus:

Counter Date
250 2014-06-01
200 2014-05-01
require 'gruff'

def gen_graph(table,color,size)
  label_index
  g = Gruff:Line.new(size)
  g.marker_font_size=15
  g.theme = {
    :colors => [color],
    :maker_color => '#CCCCCC',
    :font_color => 'Black',
    :background_color => 'White'
  }
  g.title=table.to_s + " Counter"
  data = []
  table.all.each do |row|
    data.push(row['counter'])
  end
  g.data table, data
  system("mkdir -p public/graphs")
  g.write("public/graphs/"+table.to_s.downcase+".png")
end

size=700
gen_graph(Water,"Blue",size)
gen_graph(Power,"Red",size)
gen_graph(Gas,"Yellow",size)