Help us understand the problem. What is going on with this article?

Rubyでグラフを描画してみる

More than 1 year has passed since last update.

はじめに

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.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

エリアグラフ

gruff-example.rb
g = Gruff::Area.new


実行結果
gruff-example.png

横棒グラフ

gruff-example.rb
g = Gruff::SideBar.new


実行結果
gruff-example.png

円グラフ

gruff-example.rb
g = Gruff::Pie.new


実行結果gruff-example.png

他にも色々ある こちらへ

終わりに

これでいろんなグラフをかけそう。
でも、日本語対応してないから

gruff-example.rb
g.font = '適当なフォント名.ttf'

を指定しなあかんのが、ちょっとめんどくさいかも

読んでいただきありがとうございます。

参考にさせていただいた記事
- Gruffでグラフ!格好いいグラフを簡単に生成

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away