pChart

2011/11/24 | pChart

グラフをPHPで描画する必要があり、pChartを使うことにした。最近はFlashやJavaScriptでグラフを描画させるのが流行だが、今回はクライアントのブラウザが貧弱な可能性があるので、サーバサイドで処理をして絵柄を出力する方法を採用することにした。

PHPでのグラフ描画は久しぶり。検索してヒットしたのがpChart。昔使っていたphplotは検索でほとんどヒットせず(あんまり使われてないのか)、jpGraphは有償。ということで、見た目も悪くないpChartを使ってみることにした。

サンプルを試すとNoticeレベルのエラーが発生する。

Notice: Uninitialized string offset: 0 in /home/cwj/cwj.minibird.jp/public_html/pchart/pChart/pData.class on line 127

ということでファイルを修正する。pChart/pData.classの125行目($ID=0;の下)に以下の行を挿入。

if(!is_array($this->Data)){$this->Data=array();}

初期化忘れがあるようだ。これでエラーは出なくなったが、ダウンロードしたファイルに含まれるExample1.phpにアクセスしても何も出力されない。なぜ、なぜ。しかたなくひとつずつ確認していくことにしたら、一番最後のグラフを出力しているところで処理が止まっている。ここ。

$Test->Render(“example1.png”);

やむなくソースコードを確認する。確認したのはpChart/pChart.class。で、見てみたらimagepngでファイル名の引数を与えている!。サーバ内を確認すると、確かにexample1.pngができている。そういうことだったのか。

で、調べてみたら別のメソッドが用意されていたStroke()ってやつ。こちらに書きなおして、再度ウェブからアクセスすると無事グラフが描画された。素人的な考えだけど、サンプルスクリプトはStroke()を使ってくれたほうがいいのに。何も出力されないので、PHPを始めたばかりの人だと、使用を諦めた人もたくさんいるんじゃなかろうか。

 


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net