A Ruby interface to manipulate and populate data for Google Interactive Charts.
require 'erb' require 'rubygems' require 'google_visualization' include Google::Visualization data_table = DataTable.new data_table.add_column DataColumn.new(DataType::STRING, 'Task') data_table.add_column DataColumn.new(DataType::NUMBER, 'Hours per Day') data_table.add_row ['Work', 11] data_table.add_row ['Eat', 2] data_table.add_row ['Commute', 2] data_table.add_row ['Watch TV', 2] data_table.add_row ['Sleep', 7] page = <<HTML <html> <head> <!--Load the AJAX API--> <script type="text/javascript" src="http://www.google.com/jsapi"></script> <script type="text/javascript"> // Load the Visualization API and the piechart package. google.load('visualization', '1', {'packages':['piechart']}); // Set a callback to run when the Google Visualization API is loaded. google.setOnLoadCallback(drawChart); // Callback that creates and populates a data table, // instantiates the pie chart, passes in the data and // draws it. function drawChart() { // Create our data table. var data = new google.visualization.DataTable(<%= data_table.to_json %>); // Instantiate and draw our chart, passing in some options. var chart = new google.visualization.PieChart(document.getElementById('chart_div')); chart.draw(data, {width: 400, height: 240, is3D: true, title: 'My Daily Activities'}); } </script> </head> <body> <!--Div that will hold the pie chart--> <div id="chart_div"></div> </body> </html> HTML template = ERB.new(page) print template.result
Copyright © 2010 Miguel Fonseca. See LICENSE for details.