2010年4月22日木曜日

OpenFlashChart(php ver5)をちょっとカスタマイズ

どうも、俺@OpenFlashChartでグラフ作成中です。

Flashを使ったキレイなグラフ作成ライブラリOpen Flash Chartを使っています。
pythonとかperlとかjspからも呼び出せて、キレイなグラフを描画してくれるのでかなり使えるやつです。


僕はphpを使ってるので、アーカイブを展開して「/php5-ofc-library」以下のファイルを使ってグラフを作っているのですが、どうもこれが未完成っぽい。
未完成というより、「/php-ofc-library」以下にあるファイル(php4用)の方が色々充実しているみたいですね。

積み上げ棒グラフを作っているのですが、このサンプルにあるようにグラフ上部に凡例を出したいのに出せませんでした。
※php4版ではすぐ出せました。

というわけでphp5版の/OFC/Charts/Bar/OFC_Charts_Bar_Stack.phpをイジっちゃいましょう。

# vim /OFC/Charts/OFC_Charts_Bar.php
// set_keys()メソッドを作成
function set_keys ($keys) {
$this->keys = $keys;
}

# vim /OFC/Charts/Bar/OFC_Charts_Bar_Stack.php
// OFC_Charts_Bar_Stack_Keyクラスを追加
class OFC_Charts_Bar_Stack_Key {
function OFC_Charts_Bar_Stack_Key($color, $text, $font_size) {
$this->colour = $color; // `colour`なことに注意
$this->text = $text;
$this->font-size = $font_size;
}
}


呼び出し側では

<?php
$bar_stack = new OFC_Charts_Bar_Stack();
$bar_stack->set_keys(
array (
new OFC_Charts_Bar_Stack_Key($color, $text, $font_size),
new OFC_Charts_Bar_Stack_Key($color, $text, $font_size),
new OFC_Charts_Bar_Stack_Key($color, $text, $font_size)
)
);
のようにしてやればOKです。


OpenFlashChart(php版)は、最後のtoString()メソッドやprettyString()メソッドでセットされた値を単にjson_encode()して吐き出しているだけ
なので、どんな値をセットしてもjson形式でデータを出力してくれます。
あとは、ライブラリに用意されているswfファイルが読み取ってFlashグラフを作成している、という訳です。

ちゃんちゃん。

0 件のコメント: