Google::Chartの使い方
さくっとグラフを描く
Cactiでグラフを作成しようと思っていたデータがあったのですが,色々なしがらみが面倒になったので,ローカルにデータを取得してグラフ化することにしました.どうやってグラフ化するかちょっと考えて,思い出したのがGoogle::Chartでした.まず作ろうと思ったのが棒グラフ.これはこんな感じで動きます.ワンライナーなので,本来は1行です.
perl -MGoogle::Chart -le ' $c = Google::Chart->new( type => "Bar", color => ["4d89f9","c6d9fd"], data => [[1,2,3,4,5,6],[7,8,9,10,11,12]] ); print $c->as_uri'
こんなグラフができあがります.ところがこのスクリプトに必要なデータを突っ込もうとしたら動きませんでした.
perl -MGoogle::Chart -le ' $c = Google::Chart->new( type => "Bar", color => ["4d89f9","c6d9fd"], data => [[101],[101]] ); print $c->as_uri'
つまりこういうのです.どうも値が100を越えるとだめなようです.
Google::Chart::Data::Extendedを使う
testスクリプトやいくつかのモジュールを眺めていたらGoogle::Chart::Data::Extendedというのを見つけました.どうやら100を越える値を使う時にはこれを使う必要があるようです.
perl -MGoogle::Chart -MGoogle::Chart::Data::Extended -le ' $c = Google::Chart->new( type => "Bar", color => ["4d89f9","c6d9fd"], data => Google::Chart::Data::Extended->new( dataset => [[100,101,102,103,104,105],[100,101,102,103,104,105]], max_value => 200) ); print $c->as_uri'
これを実行するとこういうグラフになります.ここまでできると,今度は軸にラベルをつけたくなりますね.その時にはこうします.
perl -MGoogle::Chart -MGoogle::Chart::Data::Extended -le ' $c = Google::Chart->new( type => "Bar", color => ["4d89f9","c6d9fd"], data => Google::Chart::Data::Extended->new( dataset => [[100,101,102,103,104,105],[100,101,102,103,104,105]], max_value => 200), axis => [ {location => "x", labels => [1,2,3,4,5,6]}, {location => "y", labels => [0,50,100,150,200,250,300]} ], ); print $c->as_uri'
こんなグラフになります.
おまけ
最後にタイトルをつけてみます.
perl -MGoogle::Chart -MGoogle::Chart::Data::Extended -le ' $c = Google::Chart->new( type => "Bar", color => ["4d89f9","c6d9fd"], data => Google::Chart::Data::Extended->new( dataset => [[100,101,102,103,104,105],[100,101,102,103,104,105]], max_value => 200), axis => [ {location => "x", labels => [1,2,3,4,5,6]}, {location => "y", labels => [0,50,100,150,200,250,300]} ], title => { text => 'Sample1'}, ); print $c->as_uri'
これでこんなグラフになります.えーと,元々何しようとしてたんだっけ….結構時間かかってしまいましたよ.