PHPグラフ作成ライブラリ pChart でフリーズ

| コメント(0) | トラックバック(0)

こんにちは、バズー株式会社、開発チームリーダーの清水です。

PHPグラフ作成ライブラリに pChart というものがあり、なかなか綺麗なグラフが書けるのですが、あるデータを渡すとフリーズ(実行時間が30秒を超える)するバグに遭遇しました。

グーグル先生に聞いてみると drawScale の第3引数を SCALE_NORMAL にするとハマるらしいです。SCALE_NORMAL はグラフの最大値・最小値を渡されたデータから自動的に決定するオプション。SCALE_START0 として最小値を明示的に 0 にすると嘘のように解決しました。これ、モジュールの重大なバグじゃないですかね?

上記のバグに対応し、普通の棒線グラフを出力するサンプルです。


// Standard inclusions
include("pChart/pData.class");
include("pChart/pChart.class");

// Dataset definition
$DataSet = new pData;
$DataSet->AddPoint($datas,"datas");
$DataSet->AddPoint($labels,"labels");
$DataSet->AddSerie("datas");
$DataSet->SetAbsciseLabelSerie("labels");

// Initialise the graph
$Chart = new pChart(230,230);
$Chart->setFontProperties("Fonts/tahoma.ttf",6);
$Chart->setGraphArea(35,10,220,195);
$Chart->drawGraphArea(255,255,255);
$Chart->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_START0,0,0,0,TRUE,30,2,FALSE,$skips);
$Chart->drawGrid(5,TRUE,230,230,230,255);

// Draw the line graph
$Chart->drawLineGraph($DataSet->GetData(),$DataSet->GetDataDescription());

// Create image file
$Chart->Render($image_path);

ちなみに GD が GIF の出力に対応している場合、pChart.class の imagepng を imagegif に直すと携帯でも読める GIF ファイルとして吐かれます。

トラックバック(0)

トラックバックURL: http://tech.buzoo.jp/mt4/mt-tb.cgi/257

コメントする

就活アワード2012 受賞

本格SF宇宙戦争シュミレーションゲーム 宇宙神話モバイルプラネット

格闘系美少女学園RPG 闘女伝説モバイル学園

携帯サイト作成のバズー株式会社

名経営者を志す 熱血社長ブログ

感動を与える仕事をする!COOのブログ

攻めのド営業 営業本部長ブログ

事業家を目指す新卒者ブログ

mixiアプリ企画・開発

バズービル写真

セレブスタイル

芝大門スタジオ

キッズスタイル

プライバシーマーク

フィードメーター - 携帯サイト開発を極める!開発チームリーダーのブロ..

あわせて読みたいブログパーツ

カテゴリ

プロフィール

バズー株式会社
執行役員 CTO
海外事業部責任者
清水 樹 (Jun Shimizu)
慶應義塾大学理工学部卒業
日立ソフトウェアエンジニアリング出身
インドネシアのジャカルタでオフショア開発拠点設置中。