Was ist Ihre bevorzugte Methode zum Erstellen von Diagrammen in einer Ruby on Rails-Webanwendung?

76

Ich möchte meiner Ruby on Rails-Webanwendung einige Kreis-, Balken- und Streudiagramme hinzufügen. Ich möchte, dass sie attraktiv sind, einfach hinzuzufügen sind und nicht viel Aufwand verursachen.

Welche Chartlösung würden Sie empfehlen?
Was sind die Nachteile (erfordert Javascript, Flash, teuer usw.)?

RichH
quelle
Am Ende habe ich mich für eine Google Charts-Implementierung entschieden, aber jetzt wechsle ich zu Google Visualization.
RichH
Ich habe jetzt 2013 auf D3
umgestellt
Highcharts ist eine großartige Bibliothek
Hsgubert

Antworten:

59

Google Charts ist eine ausgezeichnete Wahl, wenn Sie Flash nicht verwenden möchten. Es ist ziemlich einfach für sich zu benutzen, aber für Rails ist es mit dem Edelstein gchartrb noch einfacher . Ein Beispiel:

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
Clinton Dreisbach
quelle
Ich habe mich zunächst für Google Charts und gchartrb entschieden. Es ist einfach und schnell - ich kann bei Bedarf zu etwas Anspruchsvollerem wechseln.
RichH
1
Seitdem habe ich festgestellt, dass Google Charts etwas schmerzhaft ist, da die Tortenbeschriftungen häufig über die Seiten des Diagramms laufen und sie nicht hübsch sind. Ich wechsle zu Google Visualizations, das bisher viel besser aussieht, aber auf Javascript basiert.
RichH
4
Wo setzen Sie diesen Code ein? Auf einem Controller? Wie zeigen Sie es an?
B Sieben
15

Wenn Sie keine Bilder benötigen und JavaScript benötigen, können Sie eine clientseitige Lösung wie das jQuery-Plugin- Flot ausprobieren .

Ben Crouse
quelle
13

Ich bin ein Fan von Gruff Graphs , aber Google Charts ist auch gut, wenn es Ihnen nichts ausmacht, sich auf einen externen Server zu verlassen.

Lordscarlet
quelle
8

Es erfordert Flash und ist nicht kostenlos (obwohl kostengünstig): Amcharts .

Ich habe es erfolgreich benutzt und mag es. Ich habe vor einiger Zeit eine Reihe von Optionen geprüft und ausgewählt. Zu diesem Zeitpunkt war Google Charts jedoch nicht so ausgereift, wie es jetzt zu sein scheint. Ich würde das zuerst in Betracht ziehen, wenn ich jetzt neu bewerten würde.

Otto
quelle
7

Es gibt auch Scruffy . Ich habe mir kürzlich den Code angesehen und er schien einfach zu ändern / zu erweitern. Es erzeugt svg und (durch Konvertierung) png.

Matthias Winkelmann
quelle
6

Haben Sie die Google Charts-API ausprobiert ? - Web-Service-APIs sind nicht viel einfacher. Es ist kostenlos zu bedienen, einfach zu implementieren und die Diagramme sehen nicht allzu schlecht aus.

David Heggie
quelle
6

Open Flash Chart II ist eine kostenlose Option, die eine sehr schöne Ausgabe liefert. Wie zu erwarten, ist Flash erforderlich.

Fusion Charts ist noch schöner, kostet aber 499 US-Dollar. Als ich dies recherchierte, fand ich eine kostenlose Version , die Ihren Anforderungen entsprechen könnte.

Clinton Dreisbach
quelle
6

Ich 2. die Abstimmung für Flot . Mit der neuesten Version können Sie einige Animationen und Aktionen ausführen, von denen ich vorher dachte, dass sie nur über Flash möglich sind. Die Dokumentation ist fantastisch. Es ist einfach, von Hand zu schreiben, aber in einfachen Fällen wird es mit einem Rails-Plugin namens Flottille noch einfacher . Sie sollten sich die Beispielseite ansehen, um eine bessere Vorstellung davon zu bekommen, wozu sie in der Lage ist. Besonders beeindruckend sind die Zoom- und Schwebefunktionen.

Jerry Cheung
quelle
4

Morris.js ist nett und Open Source. Ich würde es gerne im Vergleich zu Highcharts wählen. Es gibt ein neues großartiges Video-Tutorial von Railscasts

Steven Yue
quelle
3

Ich habe gerade festgestellt, dass ZiYa einige wirklich sexy Charts produziert und Rails-spezifisch ist.

Die Nachteile sind, dass Flash verwendet wird. Wenn Sie nicht möchten, dass die Websites auf eine XML / SWF-Seite verlinken, kostet dies 50 US-Dollar pro Website.

[Ich habe mich noch nicht dafür entschieden, wollte es aber rauswerfen, falls die Leute darüber abstimmen wollen]

RichH
quelle
Gruff Graphs benötigt keinen Flash, ist schienenspezifisch und kostenlos.
Lordscarlet
Es sieht auch so aus, als ob ZiYa Ihnen nur einfache Methoden zur Implementierung von maani.us/xml_charts/index.php?menu=Gallery
lordscarlet
Sie haben Recht, Lordscarlet ZiYa ist nur ein RoR-Wrapper für die XML / SWF-Diagramme, aber das könnte sehr nützlich sein. Die Lizenz gilt für XML / SWF - Sie erhalten ZiYa kostenlos.
RichH
Guter Punkt. Ich habe XML / SWF verwendet und ich mag die Funktionalität sehr. Die Vorteile betreffen die Flash-Funktionalität, aber der Nachteil ist, dass es sich um Flash handelt. Bilder sind etwas tragbarer.
Lordscarlet
3

Ich habe Fusion Charts ausgiebig in einer Java-Webanwendung verwendet, aber es sollte genauso funktionieren wie in Rails, da Sie nur einen Flash über HTML oder JavaScript einbetten und ihm XML-Daten übergeben. Es ist ein schickes Paket und ihre Unterstützung war immer sehr reaktionsschnell.

Brian Deterling
quelle
2

Google Charts ist sehr schön, aber keine reine Schienenlösung. Sie verwenden einfach die Programmiersprache Ihrer Wahl, um dynamisch URLs zu erstellen, die die Daten enthalten, und Google gibt Ihnen ein schönes Bild mit Ihrem Diagramm zurück.

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

delux247
quelle
2

Früher habe ich beschlossen, meine eigenen zu rollen (mit RVG / RMagick), hauptsächlich weil Gruff nicht alles hatte, was ich wollte. Der Nachteil war, dass das Auffinden und Beseitigen aller Fehler im Grafikcode ein Schmerz ist. Heutzutage ist Gruff meine Wahl, da es in Bezug auf Anpassung und Flexibilität wirklich weiterentwickelt wurde.

Die Standard-Gruff-Vorlagen / Farboptionen sind jedoch schlecht, sodass Sie sich die Hände schmutzig machen müssen, um die besten Ergebnisse zu erzielen.

Dan Harper
quelle
2

In Bezug auf Amcharts gibt es eine "kostenlose" Version mit sehr wenigen Einschränkungen, die Flash-Diagramme generiert, einschließlich der Erwähnung "Diagramm von amCharts.com".

Und es gibt ein nettes Plugin, das Ihnen einige Hilfsmethoden bietet, mit denen Sie Ihren Ansichten ganz einfach Diagramme hinzufügen können. Bitte beachten Sie, dass die Referenzdokumentation von amCharts.com immer noch ein Muss ist, um das Diagramm an Ihre Anforderungen anzupassen.

Laurent Farcy
quelle
2

GoogleCharts und Gruff-Diagramme sind großartig, aber manchmal fehlen ihnen einige Funktionen, die ich für wissenschaftlichere Darstellungen benötige. Es gibt ein Juwel für Gnuplot, das in einigen dieser Situationen hilfreich sein kann.

http://rgplot.rubyforge.org/

Bryan Ward
quelle
2

Ich habe angefangen, Protovis zu verwenden, um SVG-Diagramme mit Javascript zu generieren. Mein grundlegender Ansatz bei Rails besteht darin, einen Controller zu haben, der die als JSON dargestellten Daten zurückgibt und sie mit etwas Javascript und Protovis aufnimmt.

Der einzige Nachteil ist, dass die vollständige IE-Unterstützung (da sie auf SVG basiert) derzeit nicht sofort verfügbar ist. Aktuelle Patches bieten jedoch einen fairen Weg, um IE-Unterstützung bereitzustellen. Details dazu finden Sie hier .

Clinton
quelle
1

Ich persönlich bevorzuge JavaScript-basierte Diagramme gegenüber Flash. Wenn das in Ordnung ist, schauen Sie sich auch High Charts an . Ein Rails-Plugin ist ebenfalls verfügbar.

Preston Lee
quelle
1

Der Edelstein gchartrb wird anscheinend nicht mehr gepflegt. Der Autor weist auf diese Edelsteine ​​hin:

Thilo
quelle
0

Wir tun dies, indem wir uns an gnuplot wenden, um die Diagramme serverseitig als PNGs zu generieren. Es ist ein bisschen altmodisch und die Diagramme sind nicht interaktiv, aber es funktioniert und kann zwischengespeichert werden.

(Der andere Grund, warum wir dies tun, ist, dass wir genau das gleiche Diagramm in die PDF-Version des Berichts einfügen können.)

AndrewR
quelle
0

Dies ist nicht speziell RoR, aber es ist eine ziemlich raffinierte Portierung von Gruff nach Javascript: http://bluff.jcoglan.com/

Tony Pitale
quelle
0

ChartDirector . Hässliche API, aber gute serverseitige Image-Ergebnisse. In sich geschlossene Binärdatei.

Jordi Bunster
quelle
0

FWIW, ich bin kein Fan von Google Charts, wenn Fit & Finish wichtig ist. Ich finde, dass insbesondere die Variablen für die Größenbestimmung nicht vorhersehbar sind - das Diagramm macht seine eigene Sache.

Ich habe noch nicht mit Gruff / Bluff / etc. Gespielt, aber für ein höherkarätiges Projekt werde ich Google Charts nicht verwenden.

scottru
quelle
0

Wenn Sie ziemlich sexy Diagramme möchten, die einfach zu generieren sind und Flash aktivieren können, sollten Sie sich unbedingt die xani / swf-Diagramme von maani.us ansehen .

Ein XML-Builder dahinter und Sie können loslegen.

Thibaut Barrère
quelle
Der erwähnte ZiYa-Wrapper bietet einen Rails-Wrapper für xml / swf. Sehr cool aussehende Charts.
RichH
Der ZiYa-Wrapper scheint tot zu sein und es fehlt derzeit stark an Dokumentation.
Travis Pessetto
0

FusionCharts ist ein sehr gutes Chartprodukt . Funktioniert gut mit RoR. Ihre Unterstützung und Foren sind gut. Die kostenlose Version dieses Produkts verfügt über eine begrenzte Anzahl von Diagrammen und Funktionen, jedoch kein Wasserzeichen.

Srividya Sharma
quelle
0

Ich habe gerade angefangen, Googlecharts für mein Rails 3-Projekt zu verwenden. Es ist schön und sauber und scheint das einzige auf Google Visualization API basierende Juwel zu sein, das noch lebt. Andere sind inaktiv und verwenden meistens die alte Google Charts-API (veröffentlicht irgendwo in den Jahren 2007-2008).

https://github.com/mattetti/googlecharts

amit_saxena
quelle
0

D3 ist meine bevorzugte Methode geworden, um Web-Apps gut aussehende Diagramme hinzuzufügen. Sie müssen ein wenig mehr Arbeit leisten als einige andere Frameworks, aber das Erscheinungsbild und die Kontrolle überwiegen.

Ich benutze hauptsächlich SVG, was bedeutet, dass es keinen IE8 gibt, aber das wird immer weniger ein Problem.

RichH
quelle
0

gem 'chart' erleichtert das Hinzufügen von ChartJS- und NVD3-Diagrammen zu Schienen.

Ytbryan
quelle