Rails用グラフプラグインGruffを使ってみる

INDEX PAGE


Rails用グラフプラグインGruffを使ってみる



Gruffの導入については前回レポートしましたが
今回は実際に使ってみることにしました。


公式HPは下記にあります。
http://nubyonrails.com/pages/gruff
また、APIは下記においてあります。
http://gruff.rubyforge.org/


しかし英語と言うことであまり英語の読めない僕は
下記のページを参考にしました。とても参考になりました。
http://d.hatena.ne.jp/onering/20080520/1211251687


というわけで、使い方はこのサイトを参考にと言いたいところですが
簡単なやつだけ。

##グラフオブジェクトの作成、
##作成するグラフによりNEWするクラスが異なります。
##後ろの700は出来上がりのピクセルです。
@grph = Gruff::Line.new 700
@grph.title = 'グラフタイトル'

##グラフスタイルの設定
theme = {
  :colors => ["#FF0000", "#0000FF"],
  :maker_color => "#999999",
  :font_color => "#000000",
  :background_colors => ["#FFDDDD","#FFFFFF"]
}
@grph.theme = theme

##フォントはRailsで利用する場合、Rails_Rootのどこかに持ってくることが推奨
@grph.font = RAILS_ROOT + '/font/msgothic.ttc'

##データの設定、データは配列で渡します、必ず数字である必要があるようです。
##Stringなどがわたってくるとエラーとなります。
@grph.data "データ", mtvtn_lvls

##データラベルの設定、ラベルはハッシュで渡します、全てのデータに設定する必要はありません。
@grph.labels = lbl


##描画処理
send_data @grph.to_blob, :type => 'imagie/png'


なお、Railsで利用する場合には、ViewのERB又はRHTMLの中から下記のように呼び出します。

< img src="<%=url_for(:controller=>'cntr',:action=>'grph')%>" >

これで、Web画面の中にグラフを表示することができます。



ただしいくつか個人的に問題点があります。
折れ線グラフにおいて、「NIL」のデータを設定すると勝手に「0」に置き換えられる。
個人的には、ないところを除いて点を結んで欲しいのですが
こういうやり方がわからないです。(それともないのかなぁ)


また、目盛りをあまりいじれないところも悩みです。
5段階評価を時系列グラフにして
5:とても良い
4:良い
3:普通
2:悪い
1:とても悪い
というように表示したかったのですが
このやり方が見つかりません。


ここは今後見つけたら報告します。


########################################################

◎Gruffの導入
 導入  http://d.hatena.ne.jp/sai-ou89/20080619
 使い方 http://d.hatena.ne.jp/sai-ou89/20080620

########################################################



INDEX PAGE