Nous avons travaillé sur un projet concernant des données de serveur où les graphiques valent mille mots. Je reçois toujours des demandes de graphiques divers et, dans le passé, j'ai utilisé Gruff pour les produire. Gruff est une excellente bibliothèque et les résultats sont également satisfaisants ! Cependant, j'ai récemment été confronté à des exigences plus strictes en matière de comportement dynamique des graphiques. Les utilisateurs voulaient pouvoir interagir avec les graphiques de différentes manières et les explorer pour recueillir davantage d'informations.
J'ai examiné les alternatives à Gruff et j'ai décidé d'opter pour XML/SWF graphiques. Ces frameworks utilisent le rendu Flash pour les graphiques et disposent de fonctionnalités intéressantes, d'un support 24 heures sur 24 et ils sont peu coûteux. L'autre avantage est que nous n'avons plus eu à nous préoccuper des différentes incantations pour installer RMagick sur les serveurs des clients. De plus, nous avons pu déléguer le rendu des graphiques au client, ce qui est essentiel pour les graphiques dynamiques. Tout ce que nous avions à faire côté serveur était de générer du XML (pour l'utilisation du CPU en temps réel).
Dans cet article, j'aimerais faire la lumière sur les différents graphiques disponibles pour les rails comme Gruff, Google charts, Ziya charts, Open Flash charts et Fusion charts.
J'utilise actuellement Ouvrir les graphiques Flash pour le projet en cours.
Graphiques de Gruff :
Gruff est une bibliothèque Ruby permettant de générer des graphiques attrayants et puissants, utiles pour les applications web, les médias imprimés et bien d'autres.
Rendu instantané
Vous pouvez rendre un graphique Gruff autant de fois que vous le souhaitez et modifier tous les paramètres entre les rendus. Les données, les couleurs, et même la taille du graphique et le type d'image peuvent être modifiés pour le rendu suivant.
Facilement extensible
Gruff est conçu pour être extrêmement extensible. L'ajout de nouveaux types de graphiques ou de thèmes peut se faire en quelques lignes de code seulement. Si vous avez besoin de plus de contrôle sur vos graphiques, vous pouvez personnaliser la mise en page, la génération de données, presque tout.
Installation
sudo gem install gruff
Démonstration d'utilisation
Exemple de diagramme à secteurs
nécessite des « rubygems »
nécessite "gruff" (bourru)
g = Gruff::Line.new
g.title = "Mon graphique"
g.data("Pommes", [1, 2, 3, 4, 4, 3])
g.data("Oranges", [4, 8, 7, 9, 8, 9])
g.data("Pastèque", [2, 3, 1, 5, 6, 8])
g.data("Pêches", [9, 9, 10, 8, 7, 9])
g.labels = {0 => '2003', 2 => '2004', 4 => '2005' }
g.write('my_fruity_graph.png')
Graphiques Google :
L'API Google Chart renvoie une image au format PNG en réponse à une URL. Plusieurs types d'images peuvent être générés, notamment des graphiques linéaires, à barres et circulaires. Pour chaque type d'image, vous pouvez spécifier des attributs tels que la taille, les couleurs et les étiquettes.
Installation ruby script/plugin install https://google-charts-on-rails.googlecode.com/svn/google_charts_on_rails/
Une fois installé, commencez à l'utiliser directement dans votre projet.
Exemple de tarte
GoogleChart.pie(10,20,40,30).to_url
Avec étiquettes :
GoogleChart.pie([‘1997’,10],[‘1998’,20],[‘1999’,40],[‘2000’,30]).to_url
Graphiques de Ziya :
Ziya vous permet de créer facilement des graphiques, des jauges et des cartes interactives pour vos applications web. Ziya s'appuie sur Flash, ce qui permet de décharger les traitements lourds du serveur vers le client. À la base, Ziya vous permet de générer facilement un fichier XML qui sera téléchargé pour le rendu. En utilisant cette gemme, vous serez en mesure de créer facilement de superbes graphiques pour votre application.
Caractéristiques :
-Prise en charge d'une grande variété de types de cartes et d'indicateurs.
-Cartes géographiques.
-Allège la charge du serveur en générant le graphique réel du côté du client.
-Prise en charge des thèmes. Vous pouvez modifier l'apparence et le comportement de n'importe quel graphique en introduisant de nouveaux thèmes.
Installation :
> gem sources -a //gems.github.com
> sudo gem install derailed-ziya
Allez dans le répertoire de votre application et lancez la commande suivante :
> ziyafy -charts
Cela copiera les thèmes et les fichiers flash nécessaires au fonctionnement de ZiYa dans le répertoire public/charts de votre application. Vous pouvez également installer les composants "maps" et "gauges". Tapez :
> ziyafy -help
Pour voir toutes les options disponibles.
Ouvrir les cartes Flash:
Caractéristiques :
-Des graphiques plus dynamiques avec des infobulles et des légendes qui attirent l'attention pour une meilleure lisibilité.
-Différents types de graphiques sont disponibles, à l'exception des graphiques en temps réel.
-Le plug-in est simple et facile à installer. Ne nécessite pas de gem comme Rmagick ou ImageMagick.
-Les données sont rendues et affichées au format SWF.
Pour installer et utiliser le plug-in open flash chart pour Rails, procédez comme suit :
1.script/plugin install //svn.pullmonkey.com/plugins/trunk/open_flash_chart/
2. déplacez le fichier open_flash_chart.swf dans votre répertoire RAILS_ROOT/public
3. déplacer le fichier swfobject.js dans le répertoire RAILS_ROOT/public/javascripts.
4. créer un contrôleur et une vue comme dans les exemples ci-dessous.
Mise en œuvre:
def index_stacked_bar
@graph = open_flash_chart_object(600,300,"/test_it/graph_code_stacked_bar")
fin
def graph_code_stacked_bar
title = Title.new("Un diagramme à barres empilées")
title.set_style("{font-size : 20px ; color : #F24062 ; text-align : center;}" ) ;
bar_stack = BarStack.new
bsv1 = BarStackValue.new(2.5, '#C4D318') # jaune
bsv2 = BarStackValue.new(5, '#50284A') # violet
bsv3 = BarStackValue.new(1.25, '#7D7B6A') # gris
bsv31 = BarStackValue.new(1.25, '#C4D318') # jaune
bar_stack.append_stack( Array.new( [bsv1, bsv2, bsv1 ]) ) ; # 0
bar_stack.append_stack( Array.new( [bsv1, bsv2, bsv3,bsv31 ]) ) ; # 0
bar_stack.set_tooltip( 'X label [#x_label#], Value [#val#]<br>Total [#total#]") ;
y = YAxis.new() ;
y.set_range( 0, 14, 2 ) ;
x = XAxis.new() ;
x.set_labels_from_array( Array.new( ['Winter', 'Spring', 'Summer', 'Autmn' ]) ) ) ;
tooltip = Tooltip.new ;
tooltip.set_hover() ;
graphique = OpenFlashChart.new
chart.set_title(title)
graphique.add_element(pile_de_barres)
graphique.x_axis = x ;
chart.y_axis = y ;
chart.set_tooltip( tooltip ) ;
render :text => chart.to_s
fin
Graphiques de fusion :
Fusion Charts est un composant graphique basé sur Flash qui permet de générer des graphiques interactifs et animés. Fusion Charts peut être utilisé avec n'importe quel langage de script web, pour produire des graphiques puissants avec un codage minimal. Fusion Charts est livré avec des modules d'encapsulation à utiliser avec Rubis sur Rails
Fusion Charts propose plus de 45 types de graphiques 2D/3D, notamment des graphiques linéaires, des graphiques de surface, des graphiques à barres, des graphiques à colonnes, des graphiques circulaires, des graphiques en forme de beignet, des graphiques combinés, des graphiques de dispersion, des graphiques à bulles, des graphiques à défilement, etc. Les aspects fonctionnels et esthétiques de chaque graphique peuvent être largement personnalisés à l'aide de l'API XML utilisée par Fusion Charts.
Générer des graphiques en utilisant Fusion Charts dans Ruby on Rails à travers un exemple d'application. Pour exécuter l'application d'exemple, les éléments suivants sont nécessaires :
- FusionCharts Free/ v3 :
Fusion Charts Free peut être téléchargé en cliquant sur ici
ou la version commerciale avec plus d'options peut être téléchargée directement à partir de www.fusioncharts.com .
L'installation de Fusion Charts consiste simplement à copier et coller les fichiers SWF et .rb du paquet de téléchargement dans le dossier approprié de l'application. Les fichiers .rb se trouvent dans le dossier Download Package > Code > RoR > Libraries.
- Ruby 1.8.6 ou supérieur
- Rails gem 2.0.2 ou supérieur :
- MySQL 4.0 ou supérieur
Tous les tableaux expliqués ci-dessus ont leurs propres avantages et inconvénients. La meilleure façon de les utiliser dépend du type d'exigences de votre projet. J'espère que cet article vous aidera à utiliser au mieux les graphiques disponibles dans rails.
Sauvegarder