[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
今回はPHPでグラフ描画をファイルに出力できるライブラリである pChart の紹介を行いたいと思います。
この pChart ですが結構前から在る様で、名前は知ってはいたのですが、PHPでグラフを描画する処理の仕事も無かったので、使用することはありませんでした。
実は今回、ちょっとPHPでPDF出力の中にグラフ表示を行うができないかとの依頼があり、調べてみることになりました。
グラフ用のライブラリは JpGraph , phpChart , pChart などがありますが、商用で無料で使えるのは pChart ぐらいしかなかったので これを使用することにしました。
pChart ですがバージョンが pChart-1.X と pChart-2.X が在る様です。
pChart-1.X は古そうで PHP7 以降には動きそうになかったので pChart-2.X の方を選択しました。
このライブラリのサイトは以下ですが、このサイトの中の DOWNLOAD のページから最新と思われる pChart 2.1.4 (zip) をダウンロードしてみました。
pChartのサイト
pChart 2.1.4 (zip) の簡単なテストを行う為に以下のソースを実行させてみます。 (ソースの内容はネットに載っていたものを少し変えましたが)
■pChart クラスを使用したPNGファイルのブラウザ出力
以下の例では4個のデータを持つバーグラフをPNGファイルとしてブラウザ出力しています。
<?php require_once("../class/pData.class.php"); require_once("../class/pDraw.class.php"); require_once("../class/pImage.class.php"); $data = new pData(); $data->addPoints([1, 2, 3, 4], 'data1'); $data->addPoints(['A', 'B', 'C', 'D'], 'labels'); $data->setAbscissa('labels'); $image = new pImage(800, 400, $data); $image->setGraphArea(50, 30, 700, 360); $image->setFontProperties(['FontName' => '../fonts/calibri.ttf', 'FontSize' => 15]); $image->drawScale(['Mode' => SCALE_MODE_ADDALL]); $image->drawStackedBarChart(); $image->autoOutput('graph.png'); ?>
これを実行してもエラーが次々と表示されて上手くいきませんでした。
ライブラリのソースを見ると array() 変数の初期化に $data = "" などとなっていて、 これが原因で PHP7 では動かない様です。
ソースをみると上記の様な記述が結構な数があったので、ライブラリを触るのはあきらめて、 他にいい方法がないかネットで調べてみました。
調べていると以下のサイトを見つけました。どうも上記のバグ?を修正したものを公開している様です。
pChart2.2.0のソース公開場所
この中の pChart2.2.0 のソースをダウンロードして上記のソースを実行すると以下の様になりました。
このライブラリですが GPL3.0 でのライセンスになっているので、なんとも言えませんが商用でも使えそうです。
今更感はありますが、このグラフ描画のライブラリの機能を調べていきたいと思います。
コメント