Diagram i Rails

Vi har arbetat med ett projekt som handlar om serverdata där diagram säger mer än tusen ord. Jag får alltid förfrågningar om olika diagram och tidigare har jag använt Gruff för att producera dem. Barsk är ett fantastiskt bibliotek och resultatet ser bra ut också! Men på senare tid har jag haft mer krävande krav på att ge mer dynamiskt beteende på listorna. Användare ville kunna interagera med diagrammen på olika sätt och gå ner för att samla in mer information.

Jag tittade på alternativen till Gruff och bestämde mig för att gå med XML/SWF diagram. Dessa ramverk använder Flash-rendering för diagram och har fantastiska funktioner, 24-timmars support och de är billiga. Den andra fördelen är att vi inte längre behövde ta itu med de olika besvärjelserna för att installera RMagick på klientens servrar. Dessutom kunde vi delegera själva diagramrenderingen till klienten, vilket med dynamiska grafer är nyckeln. Allt vi behövde göra nu på serversidan var att generera XML (för CPU-användning i realtid).

I den här artikeln skulle jag vilja kasta lite ljus över olika sjökort som är tillgängliga för räls som Gruff, Google-diagram, Ziya-diagram, Open Flash-diagram och Fusion-diagram.

Jag använder för närvarande Öppna Flash-diagram för det aktuella projektet.


Gruff-diagram:

Gruff är ett Ruby-bibliotek för att generera attraktiva och kraftfulla grafer, användbart för webbapplikationer, tryckta medier och många andra.


Snapshot Rendering

Du kan rendera en gruff-graf så många gånger du vill och ändra alla inställningar mellan renderingarna. Data, färger, till och med grafstorleken och bildtypen kan alla ändras för nästa rendering.

Lätt förlängbar

Gruff är designad för att vara extremt töjbar. Lägga till nya graftyper eller teman kan göras på så lite som några rader kod. Om du behöver mer kontroll över dina grafer kan du anpassa layouterna, datagenereringen, nästan vad som helst.


Installation

sudo gem install gruff


Demonstration av användning


Exempel på cirkeldiagram

kräver "rubygems"

kräver "guff"

g = Gruff::Line.new

g.title = "Min graf"

g.data(”Äpplen”, [1, 2, 3, 4, 4, 3])

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

g.data(”Vattenmelon”, [2, 3, 1, 5, 6, 8])

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

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

g.write('my_fruity_graph.png')


Google-diagram:

Google Chart API returnerar en bild i PNG-format som svar på en URL. Flera typer av bilder kan genereras, inklusive linje-, stapel- och cirkeldiagram. För varje bildtyp kan du ange attribut som storlek, färger och etiketter.


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

När du har installerat den, börja använda den direkt i ditt projekt.


Exempel på paj

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

Med etiketter:

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

Ziya-listor:

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.


Funktioner :

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


Installation :

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


Öppna Flash Charts
:


Funktioner
:
-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.


Genomförande:

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

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
slutet


Fusionsdiagram:

Fusion Charts är en flash-baserad diagramkomponent som kan generera interaktiva och animerade diagram. Fusion Charts kan användas med alla webbskriptspråk, för att leverera kraftfulla diagram med ganska minimal kodning. Fusion Charts levereras med omslagsmoduler för användning med Ruby on Rails

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 här

eller den kommersiella versionen med fler alternativ kan laddas ner direkt från 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

Alla diagram som förklaras ovan har sina egna fördelar och nackdelar. Det bästa sättet att använda dem beror på typen av krav för ditt projekt. Hoppas den här artikeln hjälper till att implementera den bästa användningen av sjökorten som finns tillgängliga i räls.

Kontakta oss. 

Spara

Prenumerera för de senaste uppdateringarna

relaterade inlägg

Lämna en kommentar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

sv_SESwedish