gruffでグラフ描画してみる


ある程度スマートに動いたのでまとめ。
前回の問題点。

  • フォント関連のエラーがでる。
  • gruffライブラリ自体に手を入れないと動かない。

フォントはImageMagickコンパイル時にオプションを指定して直った。gruffライブラリの問題は0.3.0→0.3.1にアップデートされてFixした。(アップデート内容もbulletがコメントアウトされただけでした)
環境は、Ubuntu 7.10 Server

ImageMagickを入れ直す

前回入れたImageMagickを削除してから再度導入する。幸いmake uninstallが使えたので簡単に済んだ。/usr/localに入れると、rmagickがライブラリを認識できないようなので/usrに導入する。

% cd ImageMagick-6.3.8/
% sudo make uninstall
% ./configure --prefix=/usr --with-gs-font-dir=/usr/share/fonts/
% make
% sudo make install

rmagickを入れ直す

これをやらないとライブラリ上手く認識しなかった。

% sudo gem install rmagick

gruffをアップデート

% sudo gem update gruff

サンプル

今回は日本語を使ってみる。(出力結果は冒頭の画像)

#!/usr/bin/ruby -Ku

# gra.rb

require 'rubygems'
require 'gruff'

g = Gruff::Line.new(500)
g.font = '/usr/share/fonts/truetype/sazanami/sazanami-gothic.ttf'
g.title = "グラフのテスト"

g.data("林檎", [1, 2, 3, 4, 4, 3])
g.data("蜜柑", [4, 8, 7, 9, 8, 9])
g.data("メロン", [2, 3, 1, 5, 6, 8])
g.data("", [9, 9, 10, 8, 7, 9])

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

g.write('my_fruity_graph.png')

実行。

% ruby gra.rb 

残りの問題点

  • グラフのテーマを変更するとフォントのエラーがでる。(グラフは出力される。フォント不足?)
  • ImageMagickをパッケージで入れたい。