Diagramme in Rails

Wir haben an einem Projekt gearbeitet, das sich mit Serverdaten befasst, bei dem Diagramme mehr sagen als tausend Worte. Ich erhalte immer wieder Anfragen für verschiedene Diagramme, und in der Vergangenheit habe ich Gruff verwendet, um sie zu erstellen. Gruff ist eine großartige Bibliothek und die Ergebnisse sehen auch gut aus! In letzter Zeit hatte ich jedoch anspruchsvollere Anforderungen, um ein dynamischeres Verhalten der Diagramme zu erreichen. Die Benutzer wollten auf verschiedene Weise mit den Diagrammen interagieren und weitere Informationen abrufen können.

Ich sah mir die Alternativen zu Gruff an und entschied mich für XML/SWF Diagramme. Diese Frameworks verwenden Flash-Rendering für Diagramme und haben großartige Funktionen, 24 Stunden Support und sind preiswert. Ein weiterer Vorteil ist, dass wir uns nicht mehr mit den verschiedenen Zaubersprüchen zur Installation von RMagick auf den Kundenservern herumschlagen mussten. Außerdem konnten wir das eigentliche Rendering der Diagramme an den Kunden delegieren, was bei dynamischen Diagrammen von entscheidender Bedeutung ist. Auf der Serverseite mussten wir nur noch XML generieren (für die CPU-Auslastung in Echtzeit).

In diesem Artikel möchte ich verschiedene Charts beleuchten, die für Rails verfügbar sind, wie Gruff, Google Charts, Ziya Charts, Open Flash Charts und Fusion Charts.

Ich verwende derzeit Flash-Diagramme öffnen für das aktuelle Projekt.


Gruff-Charts:

Gruff ist eine Ruby-Bibliothek zur Erzeugung attraktiver und leistungsfähiger Graphen, die für Webanwendungen, Printmedien und viele andere Zwecke nützlich sind.


Schnappschuss-Rendering

Sie können ein Gruff-Diagramm so oft rendern, wie Sie möchten, und zwischen den Renderings alle Einstellungen ändern. Daten, Farben, sogar die Größe des Diagramms und der Bildtyp können für die nächste Darstellung geändert werden.

Leicht erweiterbar

Gruff ist so konzipiert, dass es extrem erweiterbar ist. Das Hinzufügen neuer Diagrammtypen oder Themen kann mit nur wenigen Codezeilen erfolgen. Wenn Sie mehr Kontrolle über Ihre Diagramme benötigen, können Sie die Layouts, die Datengenerierung, fast alles anpassen.


Installation

sudo gem install gruff


Demonstration der Nutzung


Kreisdiagramm Beispiel

benötige 'Rubygems'

erfordern 'ruppig'

g = Gruff::Line.new

g.title = "Meine Grafik"

g.data("Äpfel", [1, 2, 3, 4, 4, 3])

g.data("Orangen", [4, 8, 7, 9, 8, 9])

g.data("Wassermelone", [2, 3, 1, 5, 6, 8])

g.data("Pfirsiche", [9, 9, 10, 8, 7, 9])

g.labels = {0 => '2003', 2 => '2004', 4 => '2005'}

g.write('my_fruity_graph.png')


Google Diagramme:

Die Google Chart API gibt als Antwort auf eine URL ein Bild im PNG-Format zurück. Es können mehrere Bildtypen erzeugt werden, darunter Linien-, Balken- und Kreisdiagramme. Für jeden Bildtyp können Sie Attribute wie Größe, Farben und Beschriftungen angeben.


Installation
ruby skript/plugin installieren https://google-charts-on-rails.googlecode.com/svn/google_charts_on_rails/

Nach der Installation können Sie es direkt in Ihrem Projekt verwenden.


Beispiel für einen Kuchen

GoogleChart.pie(10,20,40,30).to_url

Mit Etiketten:

GoogleChart.pie([‘1997’,10],[‘1998’,20],[‘1999’,40],[‘2000’,30]).to_url

Ziya Charts:

Mit Ziya können Sie auf einfache Weise interaktive Diagramme, Messgeräte und Karten für Ihre Webanwendungen erstellen. Ziya nutzt Flash, das die schwere serverseitige Verarbeitung auf den Client verlagert. An der Wurzel ermöglicht Ziya die einfache Generierung von XML-Dateien, die zum Rendern heruntergeladen werden. Mit diesem Edelstein können Sie auf einfache Weise großartig aussehende Diagramme für Ihre Anwendung erstellen.


Merkmale:

-Unterstützt eine Vielzahl von Karten-/Messgerätetypen.
-Geografische Karten.
-Entlastung des Servers durch Generierung des eigentlichen Diagramms auf der Client-Seite.
-Unterstützung von Themen. Sie können das Aussehen und das Verhalten aller Diagramme durch die Einführung neuer Themen ändern.


Einbau :

> gem sources -a //gems.github.com
> sudo gem install derailed-ziya

Wechseln Sie in Ihr Anwendungsverzeichnis und geben Sie den folgenden Befehl ein:
> ziyafy -charts
Dadurch werden die für ZiYa erforderlichen Themen und Flash-Dateien in das Verzeichnis public/charts Ihrer Anwendung kopiert. Sie können auch Karten und Messgerätekomponenten installieren. Geben Sie ein:

> ziyafy -help
Um alle verfügbaren Optionen zu sehen.


Flash-Charts öffnen
:


Eigenschaften
:
-Mehr dynamische Diagramme mit auffälligen Tooltips und Legenden zur besseren Lesbarkeit.
-Verschiedene Arten von Diagrammen verfügbar, außer Echtzeitdiagrammen.
-Einfach und leicht zu installieren das Plug-in. Benötigt kein Gem wie Rmagick oder ImageMagick.
Die Daten werden im SWF-Format gerendert und angezeigt.
Um das Open Flash Chart Plug-in für Rails zu installieren und zu verwenden, gehen Sie wie folgt vor:

1.script/plugin install //svn.pullmonkey.com/plugins/trunk/open_flash_chart/
Verschieben Sie die Datei open_flash_chart.swf in Ihr RAILS_ROOT/public-Verzeichnis.
Verschieben Sie die Datei swfobject.js in Ihr Verzeichnis RAILS_ROOT/public/javascripts
Erstellen Sie einen Controller und einen View wie in meinen Beispielen unten.


Implementierung:

def index_stacked_bar
@graph = open_flash_chart_object(600,300,"/test_it/graph_code_stacked_bar")
Ende

def graph_code_stacked_bar
title = Title.new("Ein gestapeltes Balkendiagramm")
title.set_style( "{font-size: 20px; color: #F24062; text-align: center;}" );
bar_stack = BarStack.new
bsv1 = BarStackValue.new(2.5, '#C4D318') # gelb
bsv2 = BarStackValue.new(5, '#50284A') # lila
bsv3 = BarStackValue.new(1.25, '#7D7B6A') # grau
bsv31 = BarStackValue.new(1.25, '#C4D318') # gelb
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>Gesamt [#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();
Diagramm = OpenFlashChart.new
chart.set_title(Titel)
chart.add_element(bar_stack)
chart.x_axis = x ;
chart.y_axis = y ;
chart.set_tooltip( tooltip );
render :text => chart.to_s
Ende


Fusion Charts:

Fusion Charts ist eine Flash-basierte Diagrammkomponente, die interaktive und animierte Diagramme erzeugen kann. Fusion Charts kann mit jeder Web-Skriptsprache verwendet werden, um leistungsstarke Diagramme mit relativ geringem Programmieraufwand zu erstellen. Fusion Charts kommt mit Wrapper-Modulen für die Verwendung mit Ruby auf Schienen

Fusion Charts bietet über 45 Arten von 2D/3D-Diagrammen, darunter Linien-, Flächen-, Balken-, Säulen-, Torten-, Doughnut-, Kombinations-, Streu-, Blasen- und Scroll-Diagramme usw. Die funktionalen und kosmetischen Aspekte jedes Diagramms können mithilfe der von Fusion Charts verwendeten XML-API umfassend angepasst werden.
Erstellen von Diagrammen mit Fusion Charts in Ruby on Rails anhand einer Beispielanwendung. Um die Beispielanwendung auszuführen, ist Folgendes erforderlich:
- FusionCharts Free/ v3:
Fusion Charts Free kann heruntergeladen werden, indem Sie auf hier

oder die kommerzielle Version mit mehr Optionen kann direkt heruntergeladen werden von www.fusioncharts.com .

Zur Installation von Fusion Charts müssen Sie lediglich die SWF- und .rb-Dateien aus dem Download-Paket in den entsprechenden Anwendungsordner kopieren und einfügen. Die .rb-Dateien befinden sich im Ordner Download-Paket > Code > RoR > Libraries.
- Ruby 1.8.6 oder höher
- Rails gem 2.0.2 oder höher:
- MySQL 4.0 oder höher

Alle oben beschriebenen Diagramme haben ihre eigenen Vor- und Nachteile. Der beste Weg, sie zu verwenden, hängt von der Art der Anforderungen Ihres Projekts ab. Ich hoffe, dieser Artikel hilft Ihnen dabei, die in Rails verfügbaren Diagramme optimal zu nutzen.

Nehmen Sie Kontakt mit uns auf. 

Speichern

Abonnieren Sie die neuesten Updates

zusammenhängende Posts

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

de_DEGerman