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.)?


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

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 .



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.


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.


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.



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.




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]


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.



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/


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.


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.


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/


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 .



1

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


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.)




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.


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.


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.


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


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.



0

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.