以下のURLで公開されている pChart - a PHP class to build charts をPHP+Apache2環境に設置して動作確認を行った時の備忘録です。
http://pchart.sourceforge.net/
動作確認は以下の環境で行いました。
$ lsb_release -d Description: Ubuntu 12.04.4 LTS
$ php --version PHP 5.3.10-1ubuntu3.10 with Suhosin-Patch (cli) (built: Feb 28 2014 23:19:50) Copyright (c) 1997-2012 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
$ apache2 -v Server version: Apache/2.2.22 (Ubuntu) Server built: Jul 12 2013 13:38:21
pChart 1.27 - beta
またPHP+Apache2は以下の記事で構築したLAMP環境を使用しました。
本資料の動作環境は、以下のURLの記事の操作でLAMP環境をUbuntu上に構築しました。
しかしpChartにはGDライブラリが必要なため、以下のコマンドでPHP向けGDライブラリをインストールしました。
$ apt-cache search gd | grep php php5-dbg - Debug symbols for PHP5 php5-gd - GD module for php5 <snip>
sudo apt-get install php5-gd
以下のphpスクリプトをHTTPのドキュメントルート(Ubuntu12.04では/var/www)に作成しブラウザにてアクセスしました。
GDライブラリがインストールされたのが確認できます。
sudo /etc/init.d/apache2 restart
<?php phpinfo(); ?>
gdの表示があればGDライブラリ(モジュール)がインストールされています。
ダウンロードしたファイルはrar形式で圧縮されています。
Windowsであれば解凍(展開)してからApache環境のドキュメントルートに移動した方が簡単だと思います。
以下にLinux(Ubuntu)上でrar形式の解凍方法を記します。
sudo apt-get install unrar
cd /var/www sudo mkdir chart
sudo cp /tmp/pChart.1.27d.rar /var/www/chart/
sudo unrar x pChart.1.27d.rar上記コマンド(unrar)を実行した時の出力です。
sakura@ubuntu:/var/www/chart$ sudo unrar x pChart.1.27d.rar UNRAR 4.00 beta 3 freeware Copyright (c) 1993-2010 Alexander Roshal Extracting from pChart.1.27d.rar pChart v1.27d - http://pchart.sourceforge.net Released on 10/03/2008 by Jean-Damien POGOLOTTI Following changes have been introduced in this release : <省略> Extracting Sample/logo.png OK Extracting Sample/Point_Asterisk.gif OK Extracting Sample/Point_Cd.gif OK <省略> Extracting Example19.php OK Extracting Example2.php OK Extracting Example20.php OK Extracting Example21.php OK <省略> All OK sakura@ubuntu:/var/www/chart$
rarファイルを解凍すると以下のように展開されました。
sakura@ubuntu:~$ LANG=C tree /var/www/chart/ /var/www/chart/ |-- Cache |-- Example1.php |-- Example10.php |-- Example11.php |-- Example12.php |-- Example13.php |-- Example14.php |-- Example15.php |-- Example16.php |-- Example17.php |-- Example18.php |-- Example19.php |-- Example2.php |-- Example20.php |-- Example21.php |-- Example22.php |-- Example23.php |-- Example24.php |-- Example25.php |-- Example26.php |-- Example3.php |-- Example4.php |-- Example5.php |-- Example6.php |-- Example7.php |-- Example8.php |-- Example9.php |-- Fonts | |-- GeosansLight.ttf | |-- MankSans.ttf | |-- Silkscreen.ttf | |-- pf_arma_five.ttf | `-- tahoma.ttf |-- HomePage3.php |-- Naked.php |-- Sample | |-- CO2.csv | |-- Point_Asterisk.gif | |-- Point_Cd.gif | |-- Sav143.tmp | |-- bulkdata.csv | |-- datawithtitle.csv | |-- logo.png | |-- softtones.txt | `-- tones.txt |-- SmallGraph.php |-- SmallStacked.php |-- buildAll.cmd |-- pChart | |-- pCache.class | |-- pChart.class | `-- pData.class |-- pChart.1.27d.rar `-- tmp
Example1.phpからExample26.phpまでサンプルコードがあります。
しかし、このExample1.phpなどは画像ファイルを作成する処理となっています。
(パーミッションも問題がある場合は、ファイルが生成されないので注意してください。)
ブラウザに出力されるように修正します。
Example1.phpを例に修正してみます。
他のExample??.phpも同様に修正が必要になります。
(修正時、パーミッションの問題があると思うのでみなさんの環境にあったパーミッションやオーナーに変更してください。)
<省略>
39 // Finish the graph
40 $Test->setFontProperties("Fonts/tahoma.ttf",8);
41 $Test->drawLegend(75,35,$DataSet->GetDataDescription(),255,255,255);
42 $Test->setFontProperties("Fonts/tahoma.ttf",10);
43 $Test->drawTitle(60,22,"example 1",50,50,50,585);
44 $Test->Render("example1.png");
45 ?>
44行目を以下のように修正してください。
$Test->Render("example1.png");$Test->Stroke();
上記の修正を行ってExample1.phpをブラウザでアクセスした時のスクリーンショットです。
サンプルコードでは、Exampleを実行した場所にファイルを作成し保存するものが多いと思います。
よって、pChartでは画像をそのままブラウザに出力したり、画像ファイルを作成したりすることができるます。
pChartを使用するにあたり、参考になると思われるURLを以下に記します。
以上、PHPで簡単にグラフ描画ができるpChartの紹介でした。