web-dev-qa-db-fra.com

Quelle est votre façon préférée de produire des graphiques dans une application Web Ruby on Rails)?

Je voudrais ajouter des graphiques à secteurs, à barres et à nuage de points à mon Ruby on Rails application Web. Je veux qu'ils soient attractifs, faciles à ajouter) et pas introduire beaucoup de frais généraux.

Quelle solution de cartographie recommanderiez-vous?
Quels sont ses inconvénients (nécessite Javascript, Flash, cher, etc.)?

76
RichH

Google Charts est un excellent choix si vous ne souhaitez pas utiliser Flash. C'est assez facile à utiliser seul, mais pour Rails, c'est encore plus facile avec la gemme gchartrb . Un exemple:

GoogleChart::PieChart.new('320x200', "Things I Like To Eat", false) do |pc| 
  pc.data "Broccoli", 30
  pc.data "Pizza", 20
  pc.data "PB&J", 40 
  pc.data "Turnips", 10 
  puts pc.to_url 
end
59

Si vous n'avez pas besoin d'images et pouvez vous contenter d'exiger JavaScript, vous pouvez essayer une solution côté client comme le plugin jQuery flot .

15
Ben Crouse

Je suis fan de Gruff Graphs , mais Google Charts est également bon si cela ne vous dérange pas de compter sur un serveur externe.

13
lordscarlet

Il nécessite flash et n'est pas gratuit (bien que peu coûteux): amcharts .

Je l'ai utilisé avec succès et j'aime ça. J'ai évalué un certain nombre d'options il y a quelque temps et je l'ai choisi. À l'époque, cependant, Google Charts n'était pas aussi mature qu'il semble l'être aujourd'hui. Je considérerais cela en premier si je devais réévaluer maintenant.

8
Otto

Il y a aussi Scruffy . J'ai récemment regardé le code et il m'a semblé facile à modifier/étendre. Il produit svg et (par conversion) png.

7
MattW.

Avez-vous essayé le Google Charts API ? - Les API de services Web ne sont pas vraiment beaucoup plus simples. Il est gratuit à utiliser, simple à mettre en œuvre et les graphiques ne semblent pas trop de mauvaise qualité.

6
David Heggie

Open Flash Chart II est une option gratuite qui donne une sortie très agréable. Comme vous vous en doutez, il nécessite Flash.

Fusion Charts est encore plus agréable, mais coûte 499 $. En recherchant cela, j'ai trouvé ne version gratuite réduite qui pourrait répondre à vos besoins.

6

Je 2ème le vote pour flot . La dernière version vous permet de faire des animations et des actions que je pensais auparavant ne seraient possibles que via Flash. La documentation est fantastique. Il est simple d'écrire à la main, mais pour les cas simples, cela devient encore plus facile avec un plugin Rails appelé flotilla . Vous devriez vérifier la page d'exemples pour une meilleure idée de ce dont il est capable. Les capacités de zoom et de survol sont particulièrement impressionnantes.

6
Jerry Cheung

La nouvelle visualisation Google semble produire des graphiques de type plus varié, plus esthétiques et interactifs que Google Graphs.

http://code.google.com/apis/visualization/

4
RichH

Morris.js est Nice et open source. Je voudrais le choisir par rapport aux highcharts. Il y a un nouveau super tutoriel vidéo de Railscasts

4
Steven Yue

Je viens de trouver ZiYa produit des graphiques vraiment sexy et est Rails spécifique.

Les inconvénients sont qu'il utilise Flash et si vous ne voulez pas que les sites soient liés à la page XML/SWF, cela coûte 50 $ par site.

[Je ne l'ai pas encore décidé, mais je voulais le jeter au cas où les gens voudraient le voter]

3
RichH

Vous devriez jeter un œil à Dmitry Baranovskiy bibliothèque Javascript appelée Raphaël .

3
Nathan de Vries

J'ai largement utilisé les graphiques de fusion à partir d'une application Web Java, mais cela devrait fonctionner de la même manière que Rails puisque vous venez d'incorporer un Flash via HTML ou JavaScript et en lui transmettant des données XML. C'est un paquet lisse et leur support a toujours été très réactif.

3
Brian Deterling

Les graphiques Google sont très agréables, mais ce n'est pas une solution Rails uniquement. Vous utilisez simplement le langage de programmation de votre choix pour produire dynamiquement des URL qui contiennent les données et google vous renvoie une belle image avec votre graphique.

http://code.google.com/apis/chart/

2
delux247

J'ai commencé à utiliser protovis pour générer des graphiques SVG avec javascript. Mon approche de base dans Rails est d'avoir un contrôleur qui retourne les données à tracer sous forme de JSON, et de les récupérer avec un peu de javascript et de protovis.

Seul inconvénient, c'est que le support complet IE (puisqu'il est basé sur SVG) n'est actuellement pas disponible dès la sortie de la boîte ... Cependant, les correctifs actuels permettent de fournir IE, dont les détails peuvent être trouvés ici .

2
Clinton

Les graphiques GoogleCharts et Gruff sont excellents, mais il leur manque parfois certaines fonctionnalités dont j'ai besoin pour un tracé plus scientifique. Il existe un joyau pour gnuplot qui peut être utile pour certaines de ces situations.

http://rgplot.rubyforge.org/

2
Bryan Ward

Autrefois, j'ai décidé de rouler le mien (en utilisant RVG/RMagick), principalement parce que Gruff n'avait pas tout ce que je voulais. L'inconvénient était que trouver et éliminer tous les bogues dans le code graphique est une douleur. De nos jours, Gruff est mon choix car il a vraiment progressé en termes de personnalisation et de flexibilité.

Les modèles/choix de couleurs standard de Gruff sont nulles, vous devrez donc vous salir les mains pour de meilleurs résultats.

2
Dan Harper

En ce qui concerne amcharts , il existe une version "gratuite" avec très peu de restrictions qui génère des graphiques Flash, y compris la mention "graphique par amCharts.com".

Et il y a un plugin Nice, ambling , qui vous fournit quelques méthodes d'assistance pour ajouter facilement des graphiques à vos vues. Veuillez noter que documentation de référence amCharts.com est toujours indispensable pour adapter le tableau à vos besoins.

2
Laurent Farcy

La gemme gchartrb n'est plus entretenue, semble-t-il. L'auteur pointe sur ces joyaux:

1
Thilo

Personnellement, je préfère les graphiques JavaScript à Flash. Si cela vous convient, consultez également High Charts . Un plugin Rails est également disponible.

1
Preston Lee

Ce n'est pas spécifiquement RoR cependant, c'est un port assez lisse de Gruff vers javascript: http://bluff.jcoglan.com/

0
Tony Pitale

Si vous voulez des graphiques assez sexy, faciles à générer et que vous pouvez activer Flash, alors vous devriez certainement jeter un œil à maani.us xml/swf charts .

Un constructeur XML derrière et vous êtes prêt à partir.

0
Thibaut Barrère

ChartDirector . API moche, mais bons résultats d'image côté serveur. Binaire autonome.

0
Jordi Bunster

D est devenu mon moyen préféré d'ajouter de superbes graphiques aux applications Web. Vous devez faire un peu plus de travail que certains autres cadres, mais l'apparence et le contrôle l'emportent sur cela.

J'utilise principalement SVG, ce qui signifie pas IE8, mais cela devient de moins en moins un problème.

0
RichH

gem 'chart' facilite l'ajout de graphiques ChartJS et NVD3 à Rails.

0
ytbryan

FWIW, je ne suis pas un fan de l'utilisation de Google Charts lorsque l'ajustement et la finition sont importants. Je trouve que les variables de dimensionnement, en particulier, sont imprévisibles - le graphique fait sa propre chose.

Je n'ai pas encore joué avec Gruff/Bluff/etc., Mais pour un projet de plus haut niveau, je n'utiliserai pas Google Charts.

0
scottru

Nous le faisons en écrivant à gnuplot pour générer les graphiques en tant que PNG côté serveur. C'est un peu old-school et les graphiques ne sont pas interactifs mais cela fonctionne et peut être mis en cache.

(L'autre raison pour laquelle nous faisons cela est que nous puissions mettre exactement le même graphique dans la version PDF du rapport).

0
AndrewR

FusionCharts est un très bon produit de cartographie. Fonctionne bien avec RoR. Leur soutien et leurs forums sont bons. La version gratuite de ce produit a un nombre limité de graphiques et de fonctionnalités, mais pas de filigrane.

0
Srividya Sharma

Je viens de commencer à utiliser googlecharts pour mon projet Rails 3. Il est agréable et propre, et semble être le seul joyau basé sur l'API de visualisation Google qui soit vivant. D'autres sont inactifs et utilisent principalement l'ancien Google graphiques api (publié quelque part en 2007-2008).

https://github.com/mattetti/googlecharts

0
amit_saxena

HighChart - Une bibliothèque de graphiques écrite en JavaScript pur

Des gemmes comme highchart-Rails , lazy-high-chart facilitent l'intégration avec Rails plus facile

0
usha