Lorsque vous cherchez à créer des graphiques, quelque soit le langage, c’est toujours un peu prise de tête. En Ruby par exemple, il existe gruff.
Par ailleurs trouver une librairie qui fera des graphiques joli est tout aussi difficile.
Du coup j’ai préféré bosser avec Google Charts. Et j’ai eu besoin d’une librairie Ruby qui me permette de générer les graphiques de manière assez simple.
Les deux ou trois que j’ai testé ne m’ont pas convenu. J’ai donc décidé de créer la mienne. Et voici donc Ruby on GChart ![]()
C’est un plugin rails. Mais il n’a aucune dépendance autre que net/http (pour l’enregistrement du fichier). Vous pouvez donc l’utiliser dans n’importe quel script ruby.
Son fonctionnement est assez simple. Vous instanciez la classe :
chart = GoogleChart::Chart.new({
:type => :text,
:height => 250,
:width => 100,
:encoding => :simple,
:datas => [25, 15, 50],
:labels => ['First', 'Second', 'Third'],
})
Puis, pour obtenir le graphique, deux possibilités :
graph.to_url
Qui retournera simplement l’url du graphique.
Ou bien :
graph.to_file /chemin/vers/le/fichier.png
Qui récupèrera l’image générée et l’enregistrera sur votre disque à l’endroit demandé.
Ainsi le code ci-dessus vous génèrera le graphique suivant :
Plusieurs paramètres sont disponibles en plus de ceux donnés ci-desus :
- encoding : permet de préciser le type d’encodage des données (supportés : :text et :simple)
- colors : permet de spécifier les couleurs des graphiques. Exemple : :colors => ['000000', 'FFFFFF']
Il est par ailleurs possible d’obtenir plusieurs graphiques en y passant un tableau de données.
Exemple :
chart = GoogleChart::Chart.new({
:type => :text,
:height => 250,
:width => 100,
:encoding => :simple,
:datas => [[25, 15, 50], [15, 50, 25]],
:labels => ['First', 'Second', 'Third'],
:colors => ['00FF00', 'FF0000']
})
Affichera le graphique suivant :
Sympa non ? N’hésitez pas à l’utiliser et à me faire vos retour en commentaire à ce billet














