25 Jan
duccio

duccio il 25 January 2007 parla di Rails Snippet

Ziya plugin all’opera

Ho provato il plugin consigliato da Matteo nel post “Rails + Flash: plugin ZiYa“, è veramente favoloso, con due righe di codice si fanno dei grafici molto interessanti. Vediamo come realizzare un grafico con il plugin. Innanzi tutto va installato così:

    1 ruby script/plugin install svn://rubyforge.org/var/svn/liquidrail/plugins/ziya/trunk 

Automaticamente viene creata una cartella Charts sotto public del progetto con gli swf necessari per visualizzare i grafici ed i vari template.

Poi nella vostra applicazione dovete includere lo Ziya e fare alcune prove tipo queste:

    1 require 'Ziya'
    2 class SiteController < ApplicationController
    3   layout 'site' 
    4   include Ziya
    5 
    6   
    7   def bar_graph    
    8     @categories = %w{ 2003 2004 2005 }
    9     @series_a    = [ -10, 45, 100 ]
   10     @series_b    = [ -35, 65, 80 ]        
   11     @series_c    = [ 10.5, 30.2, 55.0 ]
   12 
   13     graph  = Ziya::Charts::Bar.new( @license, "BAR", "bar" )          
   14     graph.add :axis_category_text, @categories
   15     graph.add :series, 'Serie A', @series_a
   16     graph.add :series, 'Serie B', @series_b
   17     graph.add :series, 'Serie C', @series_c
   18     render_text graph    
   19   end
   20   
   21   def area_graph    
   22     graph = Ziya::Charts::Area.new( @license, "AREA", "area_1" )          
   23     graph.add :axis_category_text, %w{ 2002, 2003 2004 2005 }
   24     graph.add :series, 'Regione A', [ 12, 50, 35, 65 ]
   25     graph.add :series, 'Regione B', [ 27, 30, 60, 80] 
   26     render_text graph       
   27   end
   28   
   29   def pie_graph
   30     @categories = %w{ 2001 2002 2003 2004 2005 }
   31     @series_a    = [ 20, 10, 30, 50, 40 ]
   32     
   33     graph = Ziya::Charts::Pie.new( @license, "PIE", "pie_1" )          
   34     graph.add :axis_category_text, @categories
   35     graph.add :series, 'region A', @series_a
   36     render_text graph       
   37   end
   38 end

e nella vista dovete mettere:

    1 <%= gen_chart( "bar", 
    2 url_for( :controller => 'site', :action => 'bar_graph' ), 
    3 "#4d4d4d", 400, 300 ) %>
    4 <%= gen_chart( "bar", 
    5 url_for( :controller => 'site', :action => 'area_graph' ), 
    6 "#4d4d4d", 400, 300 ) %>
    7 <%= gen_chart( "bar", 
    8 url_for( :controller => 'site', :action => 'pie_graph' ), 
    9 "#4d4d4d", 400, 300 ) %>

Con questo esempio vengono generati tre grafici un istogramma, un grafico a torta ed uno ad aree sottese.

Nel controllore si inizializza l’oggetto per la creazione del grafico e gli si passano le serie e le etichette. Nell’esempio le serie e le etichette vengono definite dentro la funzione che disegna il grafico, è chiaro che quello non è il posto migliore, i dati li dovete inizializzare in una funzione, magari privata; io li ho messi lì solo per fare prima e concentrare il necessario per visualizzare i grafici.

Il contenuto dell vista nel mio caso chiamata “charts.rhtml” serve per visualizzare il grafico usando la funzione dell’helper del plugin gen_chart.

Questi sono i grafici a torta e l’istogramma generati da ZiYa con l’esempio riportato in questo post.

picture-2.png

1 Commento a “Ziya plugin all’opera”

  1. Alex il 19 April 2010 alle 10:40 dice:

    ho provato ad usare questo plugin, ma mi da un errore! è come se non trovasse Ziya::Helper. Sa cosa possa essere?
    (se questo commento è del tutto fuori luogo chiedo scusa)

Scrivi un commento