はじめに
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.png](https://qiita-image-store.s3.amazonaws.com/0/181383/e56449f3-b398-bf2b-4409-46805a36a10b.png)エリアグラフ
gruff-example.rb
g = Gruff::Area.new
実行結果
![gruff-example.png](https://qiita-image-store.s3.amazonaws.com/0/181383/11af289f-27f2-38fd-a1cb-4b2b08775f61.png)横棒グラフ
gruff-example.rb
g = Gruff::SideBar.new
実行結果
![gruff-example.png](https://qiita-image-store.s3.amazonaws.com/0/181383/27a86d42-555e-fd17-7e7a-a9ac41d63dfd.png)円グラフ
gruff-example.rb
g = Gruff::Pie.new
実行結果
![gruff-example.png](https://qiita-image-store.s3.amazonaws.com/0/181383/25c99354-f3a2-afd0-dfbe-9100b34095f7.png)他にも色々ある こちらへ
終わりに
これでいろんなグラフをかけそう。
でも、日本語対応してないから
gruff-example.rb
g.font = '適当なフォント名.ttf'
を指定しなあかんのが、ちょっとめんどくさいかも
読んでいただきありがとうございます。
参考にさせていただいた記事