Grafici in Rails

Abbiamo lavorato a un progetto che si occupa dei dati del server in cui i grafici valgono più di mille parole. Ricevo sempre richieste per vari grafici e in passato ho usato Gruff per produrli. Burbero è un'ottima libreria e anche i risultati sembrano buoni! Tuttavia, recentemente ho avuto requisiti più esigenti per fornire un comportamento più dinamico sui grafici. Gli utenti volevano poter interagire con i grafici in vari modi e approfondire per raccogliere maggiori informazioni.

Ho esaminato le alternative a Gruff e ho deciso di accettarle XML/SWF grafici. Questi framework utilizzano il rendering Flash per i grafici e hanno ottime funzionalità, supporto 24 ore su 24 e sono economici. L'altro vantaggio è che non dovevamo più occuparci di capire i vari incantesimi per installare RMagick sui server dei clienti. Inoltre, siamo stati in grado di delegare al cliente il rendering effettivo del grafico, che con i grafici dinamici è fondamentale. Tutto quello che dovevamo fare ora sul lato server era generare XML (per l'utilizzo della CPU in tempo reale).

In questo articolo, vorrei far luce sui vari grafici disponibili per i binari come Gruff, grafici Google, grafici Ziya, grafici Open Flash e grafici Fusion.

Attualmente sto utilizzando Apri i grafici Flash per il progetto attuale.


Grafici burberi:

Gruff è una libreria Ruby per generare grafici attraenti e potenti, utili per applicazioni web, supporti di stampa e molti altri.


Rendering di istantanee

Puoi eseguire il rendering di un grafico Gruff tutte le volte che vuoi e modificare qualsiasi impostazione tra i rendering. Dati, colori, persino la dimensione del grafico e il tipo di immagine possono essere modificati per il rendering successivo.

Facilmente estensibile

Gruff è progettato per essere estremamente estensibile. L'aggiunta di nuovi tipi di grafici o temi può essere eseguita in poche righe di codice. Se hai bisogno di maggiore controllo sui tuoi grafici, puoi personalizzare i layout, la generazione dei dati, quasi tutto.


Installazione

sudo gem installa gruff


Dimostrazione di utilizzo


Esempio di grafico a torta

richiedono "rubygems"

richiedono "burbero"

g = Burbero::Linea.new

g.title = “Il mio grafico”

g.data(“Mele”, [1, 2, 3, 4, 4, 3])

g.data(“Arance”, [4, 8, 7, 9, 8, 9])

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

g.data(“Pesche”, [9, 9, 10, 8, 7, 9])

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

g.write('my_fruity_graph.png')


Grafici di Google:

L'API di Google Chart restituisce un'immagine in formato PNG in risposta a un URL. È possibile generare diversi tipi di immagini, inclusi grafici a linee, a barre e a torta. Per ciascun tipo di immagine è possibile specificare attributi quali dimensioni, colori ed etichette.


Installazione
installazione di script/plugin Ruby https://google-charts-on-rails.googlecode.com/svn/google_charts_on_rails/

Una volta installato, inizia a usarlo direttamente nel tuo progetto.


Esempio di torta

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

Con etichette:

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

Grafici Ziya:

Ziya allows you to easily create interactive charts, gauges and maps for your web applications. Ziya leverages flash which offloads heavy server side processing to the client. At the root, Ziya allows you to easily generate an XML files that will be downloaded  for rendering. Using this gem, you will be able to  create great looking charts for your application easily.


Caratteristiche :

-Supports a wide variety of chart/gauge types.
-Geographical maps.
-Relieves your server load by generating the actual chart on the client side.
-Themes support. You can change the appearance and behavior of any charts by introducing new themes.


Installazione :

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

cd to your application directory and issue the following command:
> ziyafy –charts
This will copy the necessary themes and flash files to run ZiYa in your application’s public/charts directory. You can install maps and gauges components as well. Type in:

> ziyafy –help
To see all available options.


Apri grafici Flash
:


Caratteristiche
:
-More dynamic graphs with eye catching tooltips and legends for readability.
-Various types of charts available, except real time charts.
-Simple and easy to install the plug-in. Does not need and gem like Rmagick or ImageMagick.
-Data is rendered and displayed in SWF format.
To install and use the open flash chart plug-in for Rails do the following:

1.script/plugin install //svn.pullmonkey.com/plugins/trunk/open_flash_chart/
2.Move the open_flash_chart.swf file into your RAILS_ROOT/public directory
3.Move the swfobject.js file into your RAILS_ROOT/public/javascripts directory
4.Create a controller and a view as in my examples below.


Implementazione:

def index_stacked_bar
@graph = open_flash_chart_object(600,300,”/test_it/graph_code_stacked_bar”)
FINE

def graph_code_stacked_bar
title = Title.new(“A stacked bar chart”)
title.set_style( “{font-size: 20px; color: #F24062; text-align: center;}” );
bar_stack = BarStack.new
bsv1 = BarStackValue.new(2.5, ‘#C4D318’) # yellow
bsv2 = BarStackValue.new(5, ‘#50284A’) # purple
bsv3 = BarStackValue.new(1.25, ‘#7D7B6A’) # gray
bsv31 = BarStackValue.new(1.25, ‘#C4D318’) # yellow
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();
chart = OpenFlashChart.new
chart.set_title(title)
chart.add_element(bar_stack)
chart.x_axis = x ;
chart.y_axis = y ;
chart.set_tooltip( tooltip );
render :text => chart.to_s
FINE


Grafici di fusione:

Fusion Charts è un componente grafico basato su Flash che può generare grafici interattivi e animati. Fusion Charts può essere utilizzato con qualsiasi linguaggio di scripting web, per fornire grafici potenti con una codifica abbastanza minima. Fusion Charts viene fornito con moduli wrapper da utilizzare con Rubino sui binari

Fusion Charts offers over 45 types of 2D/3D charts including line, area, bar, column, pie, doughnut (donut), combination, scatter, bubble, scroll charts etc. The functional and cosmetic aspects of each chart can be extensively customized using the XML API used by Fusion Charts.
Generating charts using Fusion Charts in Ruby on Rails through a sample application. To run the sample application, the following would be needed:
• FusionCharts Free/ v3:
Fusion Charts Free can be downloaded by clicking Qui

oppure la versione commerciale con più opzioni può essere scaricata direttamente da www.fusioncharts.com .

Installation of Fusion Charts involves just copying and pasting the SWF and .rb files from the download package into appropriate application folder. The .rb files are present in Download Package > Code > RoR > Libraries folder.
• Ruby 1.8.6 or above
• Rails gem 2.0.2 or above:
• MySQL 4.0 or above

Tutti i grafici spiegati sopra presentano vantaggi e svantaggi. Il modo migliore per utilizzarli dipende dal tipo di requisiti del progetto. Spero che questo articolo aiuti a implementare il miglior utilizzo delle carte disponibili nei rail.

Mettiti in contatto con noi. 

Salva

Iscriviti per gli ultimi aggiornamenti

Articoli correlati

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

it_ITItalian