Open Flash Chartというグラフツールがあります。その名の通り、フラッシュを使って描画します。グラフの見栄えはかなり良いです。Railsからも簡単に使えるようなので、試してみました。
手順としては、以下の通りです
1.プラグインのインストール
2.ControllerとViewの記述
3.swfobject.jsのコピー
4.open-flash-chart.swfのコピー
詳しい手順はこちらから
Open Flash Chart II Plugin for Ruby on Rails - Graphs(OFC2)
1.インストール
# ruby script/plugin install http://svn.pullmonkey.com/plugins/trunk/open_flash_chart/ + ./MIT-LICENSE + ./README + ./Rakefile + ./init.rb + ./install.rb + ./lib/open_flash_chart.rb + ./open-flash-chart.swf + ./swfobject.js + ./tasks/open_flash_chart_tasks.rake + ./test/open_flash_chart_test.rb + ./uninstall.rb
2.ControllerとViewの記述
サンプルを参照ください。注意しないといけないのは、OFCとOFC2ではクラスの中身が全然違うことです。私も2種類あることを知らずに、OFCをインストールしてOFC2のサンプルコードで動かないと悩んでいました。
OFC
def view @graph = open_flash_chart_object(500,250, '/projects/open_flash_chart/bar_chart', true, '/projects/') end def bar_chart bar = BarOutline.new(50, '#9933CC', '#8010A0') bar.key("Page VIEWS", 10) 10.times do |t| bar.data << rand(7) + 3 end g = Graph.new g.title("BAR CHART", "{font-size: 15px;}") g.data_sets << bar g.set_x_labels(%w(Jan Feb Mar Apr May Jun Jul Aug Sep Oct)) g.set_x_label_style(10, '#9933CC', 0,2) g.set_x_axis_steps(2) g.set_y_max(10) g.set_y_label_steps(4) g.set_y_legend("OPENF LADF", 12, "#736AFF") render :text => g.render end
OFC2
class TestItController < ApplicationController def index @graph = open_flash_chart_object(600,300,"/test_it/graph_code") end def graph_code title = Title.new("MY TITLE") bar = BarGlass.new bar.set_values([1,2,3,4,5,6,7,8,9]) chart = OpenFlashChart.new chart.set_title(title) chart.add_element(bar) render :text => chart.to_s end end
サンプルコードのgraph_codeは表示用のデータを生成しているだけです。実体を直接見ると、数値等の羅列です。当然、単なるデータファイルに置き換えることも可能です。
その他、サンプルはこちら
折れ線グラフ