はじめに
Rubyでグラフを描画してみたいと思い、gemを探したところ、gruffを見つけた。
その使い方を自分のメモ程度ですが、まとめてみたいと思う。
gruffとは
Rmagickを利用したグラフ描画用のgemです。
最終的にグラフを画像ファイルとして出力される。
gruffを使ってみる
gemをインストール
gem install 'gruff'
rubyファイルを作る
gruff-example.rb
require 'gruff'
g = Gruff::Line.new
g.title = "Gold Medal in Winter Olympics"
g.labels = { 0 => 'Nagano(98)',
1 => 'Salt Lake City(02)',
2 => 'Torino(06)',
3 => 'Vancouver(10)',
4 => 'Sochi(14)',
}
g.data :Japan, [5, 0, 1, 0, 1]
g.data :USA, [6, 10, 9, 9, 9]
g.data :Germany, [12, 12, 11, 10, 8]
g.write('gruff-example.png')
実行する
ruby gruff-example.rb
実行結果
同一ディレクトリにpngファイルが生成される
メソッドの紹介
① それぞれのグラフのデータ
これの数がグラフのデータの数になります。
gruff-example.rb
# 色は、なしでも可
g.data :データ名, 数値の配列, 色
② marginを空けるなら
gruff-example.rb
# pxは書かない
g.margins = 数値
③ 背景やフォントの色を指定するなら
gruff-example.rb
g.theme = {
:colors => 色の配列,
:marker_color => 色,
:background_colors => 色,
:font_color => 色
}
④ themeをテンプレから指定するなら
gruff-example.rb
g.theme_keynote
g.theme_37signals
g.theme_rails_keynote
g.theme_odeo
g.theme_pastel
g.theme_greyscale
グラフの種類
棒グラフ
gruff-example.rb
g = Gruff::Bar.new
実行結果
エリアグラフ
gruff-example.rb
g = Gruff::Area.new
実行結果
横棒グラフ
gruff-example.rb
g = Gruff::SideBar.new
実行結果
円グラフ
gruff-example.rb
g = Gruff::Pie.new
実行結果
他にも色々ある こちらへ
終わりに
これでいろんなグラフをかけそう。
でも、日本語対応してないから
gruff-example.rb
g.font = '適当なフォント名.ttf'
を指定しなあかんのが、ちょっとめんどくさいかも
読んでいただきありがとうございます。
参考にさせていただいた記事