GruffはRubyでグラフ等を描くためのライブラリで、gemでインストールして使うことができる。
http://nubyonrails.com/pages/gruff
ただしライブラリがRMagickを通してImageMagickに依存しているため、それらもあわせて適正なバージョンをインストールする必要がある。
Instant Rails 1.7を利用していることを前提とする。以下の記事が参考になる。
Railsで画像をアップしてみよう!(FileColumn,RMagick,ImageMagick) for windows
ImageMagick-6.2.9-0-Q8-windows-dll.exe を以下から入手する。
http://www.imagemagick.org/script/download.php
rmagick-1.13.0-IM-6.2.9-0-win32.zip を以下から入手する。
http://rubyforge.org/frs/?group_id=12&release_id=8170
ImageMagickとRMagickは最新バージョンではなく、それぞれ組み合わせとして適切なバージョンを用意する必要があるので注意。
Instant Railsのgemは古いのでコマンドでアップデートする。コマンドプロンプトからgemにパスの通った状態で以下の方法でアップデートする。gruffをインストールするためにはgemのバージョン1.3.1以上が必要になる。
gem --version gem update --system gem --version
gemが最新になったらrmagickとgruffをインストールする。
gem install --local rmagick-1.13.0-win32.gem gem install gruff
このあたりの記事を参考に。
RMagick を使って輝きのあるバナー画像を作成する
http://doruby.kbmj.com/akio0911_on_rails/20090115/RMagick__
画像ファイルアップロード
まずaptでImageMagickとRMagickを入れる。RMagickはImageMagickにあわせてバージョンを指定する必要がある。
sudo aptitude install imagemagick libmagick9-dev sudo gem1.8 install rmagick -v 1.15.14
Hardyのgemは1.1.1と古いので、最新のrubygemsを入れる必要がある。ソースからビルドしても良いのだが、ここはaptですべて片付ける。
sudo aptitude update sudo aptitude install rubygems1.8 gem --version
Jauntyのリポジトリにあるのはrubygems 1.3.1なので、これでgruffが入るはず。なお、apt-lineは忘れずに戻しておく。
sudo gem1.8 install gruff
ちなみにrubygemsをソースからビルドした場合は次の通りにすれば良い。
Rubyの管理パッケージRubyGemsの最新バージョンをインストールする方法
Controller
require 'gruff' def graph_draw_line @graph = Gruff::Line.new @graph.title = "hoge" @graph.marker_font_size = 10 # 最大値及び最小値を設定、設定を省略すると自動、片方だけだとエラー @graph.maximum_value = 50 @graph.minimum_value = 10 # 色を2色設定するとグラデーション @graph.theme = { :background_colors => %w[green white]} # 凡例非表示 @graph.hide_legend = false # data(name, [値1,値2…], 'RPG値') @graph.data 'test', [14, 28, 34] # 列のラベル,0から始まる @graph.labels = { 0=> 'hoge', 1=>'fuga', 2=>'piyo' } send_data(@graph.to_blob, :type=>"image/png", :disposition=>"inline") end
View
<%= tag("img", :src=>url_for(:controller=>"project",:action=>"graph_draw_line")) %>