アクセス状況のグラフ表示について

| No TrackBacks
番組毎の盛上がりを後でグラフで見たい時のために、テンションカウンターの値でグラフを作成する管理機能を作ってみました。

チャートを簡 単に書くためにはFlexのチャートコンポーネントを使うか、RubyならGruffというチャート画像を描画するためのライブラリを用います。今回は画 像を生成してブログなんかに貼りたいという意見を採用したため、Gruffでチャートを描く機能を実装しました。

Gruffのインストールはこちら
http://d.hatena.ne.jp/con_mame/20081011


そのままですと、見た目が明らかにGruffという感じでイマイチなので表現についていろいろと調べてみました。

まずコンストラクタで線グラフと画像のサイズを決定

g = Gruff::Line.new('1024x480')
タイトルやラベルなどを設定
    g.labels = labels
g.title = '番組名'
g.data("テンション値", tension_data)

設定したラベルに日本語を使った場合、デフォルトフォントだと表示されないので、日本語フォントを指定

g.font = 'XXXXXXXXXXX.ttf'

ここからはスタイルです。フォントのサイズ等の指定

g.title_font_size = 15
g.legend_font_size = 12
g.legend_box_size = 10
g.marker_font_size = 11
線グラフの区切り毎に丸いドットが表示されるのですが、これを非表示にしたいばあいはこのように指定

g.hide_dots = true
あとは、背景色などすべてのチャート共通のスタイルについてはthemeというプロパティにこのように設定していきます。


    g.theme = {
:colors => %w(orange purple green white red),
:background_colors => %w(blue #000066),
# :background_image =>'XXXXXXXX.jpg',
:font_color => 'white'
}


このようにして生成されたグラフは次のような感じです。
37712tension_level.jpg

簡単に綺麗なグラフを描画することができますね。

No TrackBacks

TrackBack URL: http://blog.tv-oendan.jp/cgi-bin/movabletype/mt-tb.cgi/9