Google Chart 4 Rails (GC4R)

Charts are generated by Google API.

Install: ruby script/plugin install http://gc4r.googlecode.com/svn/trunk/

Supported features:
1.line chart
2.bar chart (vertical and horizontal)
3.pie chart (both 2D and 3D)
4.title, title color and size
5.data colors and legend
6.data scaling
7.multiple axis

#Controller

use_google_charts

#In method of controller

Default Chart or Hello World Chart

@chart = GoogleChart.new

Set the width of chart

@chart = GoogleLineChart.new :width => 300, :height => 200

Set the data

dataset = GoogleChartDataset.new :data => [10,50,4,10,16]
data = GoogleChartData.new :datasets => dataset
@chart = GoogleLineChart.new :width => 300, :height => 200
@chart.data = data

add a chart title

dataset = GoogleChartDataset.new :data => [10,50,4,10,16]
data = GoogleChartData.new :datasets => dataset
@chart = GoogleLineChart.new :width => 200, :height => 150, :title => 'Java vs. Ruby Montly Job Opportunities'
@chart.data = data

Set title in array instead of string


dataset = GoogleChartDataset.new :data => [10,50,4,10,16]
data = GoogleChartData.new :datasets => dataset
@chart = GoogleLineChart.new :width => 200, :height => 150, :title => ['Java vs. Ruby', 'Montly Job Opportunities']
@chart.data = data

Multiple data in chart


dataset1 = GoogleChartDataset.new :data => [10,50,4,10,16]
dataset2 = GoogleChartDataset.new :data => [99, 81, 25, 54, 80]
data = GoogleChartData.new :datasets => [dataset1, dataset2]
@chart = GoogleLineChart.new :width => 200, :height => 150, :title => ['Java vs. Ruby', 'Montly Job Opportunities']
@chart.data = data

Add colors


dataset1 = GoogleChartDataset.new :data => [10,50,4,10,16],:color => 'FF0000'
dataset2 = GoogleChartDataset.new :data =>[99,81,25,54,80],:color => '0000FF'
data = GoogleChartData.new :datasets => [dataset1, dataset2]
@chart = GoogleLineChart.new :width => 200, :height => 150, :title => ['Java vs. Ruby', 'Montly Job Opportunities']
@chart.data = data

Define legend

dataset1 = GoogleChartDataset.new :data =>[10,50,4,10,16],:color => 'FF0000', :title => 'Java'
dataset2 = GoogleChartDataset.new :data=>[99,81,25,54,80],:color => '0000FF', :title => 'Ruby'
data = GoogleChartData.new :datasets => [dataset1, dataset2]
@chart = GoogleLineChart.new :width => 200, :height => 150, :title => ['Java vs. Ruby', 'Montly Job Opportunities']
@chart.data = data

Define Axis

dataset1 = GoogleChartDataset.new :data =>[10,50,4,10,16],:color => 'FF0000', :title => 'Java'
dataset2 = GoogleChartDataset.new :data=>[99,81,25,54,80],:color => '0000FF', :title => 'Ruby'
data = GoogleChartData.new :datasets => [dataset1, dataset2]
axis = GoogleChartAxis.new :axis  => [GoogleChartAxis::LEFT, GoogleChartAxis::BOTTOM]
@chart = GoogleLineChart.new :width => 250, :height => 150, :title => ['Java vs. Ruby', 'Montly Job Opportunities']
@chart.data = data
@chart.axis = axis

Define Right and X Axis


dataset1 = GoogleChartDataset.new :data=> [10,50,4,10,16],:color => 'FF0000',  :title => 'Java'
dataset2 = GoogleChartDataset.new :data=>[99,81,25,54,80],:color => '0000FF', :title => 'Ruby'
data = GoogleChartData.new :datasets => [dataset1, dataset2]
axis = GoogleChartAxis.new :axis  => [GoogleChartAxis::LEFT, GoogleChartAxis::BOTTOM,  GoogleChartAxis::RIGHT, GoogleChartAxis::BOTTOM]
@chart = GoogleLineChart.new :width => 300, :height => 200, :title => ['Java vs. Ruby', 'Montly Job Opportunities']
@chart.data = data
@chart.axis = axis

Define Bar Chart:


@chart = GoogleBarChart.new :width => 300, :height => 200, :title => ['Java vs. Ruby', 'Montly Job Opportunities']

Define 3D Pie Chart:


@chart = GooglePieChart.new :width => 400, :height => 200, :title => ['Java vs. Ruby', 'Montly Job Opportunities'], :chart_type  => GooglePieChart::PIE_3D

#view:

<%= image_tag @chart.to_url %>