#navi(../)
* PHPのグラフツールpChartを設置してみた [#nd29b5ae]
以下のURLで公開されている ''pChart - a PHP class to build charts'' をPHP+Apache2環境に設置して動作確認を行った時の備忘録です。~
http://pchart.sourceforge.net/~
#br

#contents
#htmlinsertpcsp(web-top.html,web-sp.html)

* 動作確認環境 [#j0c828c7]
動作確認は以下の環境で行いました。~
-OS
 $ lsb_release -d
 Description:    Ubuntu 12.04.4 LTS
-PHP
 $ 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
-Apache
 $ apache2 -v
 Server version: Apache/2.2.22 (Ubuntu)
 Server built:   Jul 12 2013 13:38:21
-pChart
 pChart 1.27 - beta

またPHP+Apache2は以下の記事で構築したLAMP環境を使用しました。
-[[UbuntuでLAMP環境を構築する>http://linux.just4fun.biz/Ubuntu/LAMP%E7%92%B0%E5%A2%83%E3%81%AE%E6%A7%8B%E7%AF%89.html]]

* pChartにはGDライブラリが必要 [#b7e24ff2]
本資料の動作環境は、以下のURLの記事の操作でLAMP環境をUbuntu上に構築しました。~
しかしpChartにはGDライブラリが必要なため、以下のコマンドでPHP向けGDライブラリをインストールしました。
-apt-cacheでgdライブラリを検索
 $ apt-cache search gd | grep php
 php5-dbg - Debug symbols for PHP5
 php5-gd - GD module for php5
 <snip>
-php5-gdをapt-getコマンドでインストール
 sudo apt-get install php5-gd

以下のphpスクリプトをHTTPのドキュメントルート(Ubuntu12.04では/var/www)に作成しブラウザにてアクセスしました。~
GDライブラリがインストールされたのが確認できます。
+ GDライブラリ(php5-gd)インストール完了後、Apacheを再起動
 sudo /etc/init.d/apache2 restart
+ 以下のPHPスクリプトを作成しドキュメントルートに配置
 <?php phpinfo(); ?>
+ ブラウザにてアクセスしgdがインストールされていることを確認。
#ref(01.gif)
#br

gdの表示があればGDライブラリ(モジュール)がインストールされています。

* pChartのダウンロード [#mf053404]
+以下のURLからpChartをダウンロードします。~
http://pchart.sourceforge.net/download.php~
#br
#ref(02.gif)
#br
+ pChart.1.27d.rar をダウンロードしました。
#ref(03.gif)
#br

* rarの解凍(展開) [#c8d2f471]
ダウンロードしたファイルはrar形式で圧縮されています。~
Windowsであれば解凍(展開)してからApache環境のドキュメントルートに移動した方が簡単だと思います。~
以下にLinux(Ubuntu)上でrar形式の解凍方法を記します。
+ unrarをインストールする
以下のコマンドでunrarをインストールします。
 sudo apt-get install unrar
+ ドキュメントルートにchartディレクトリを作成。(以下、Ubuntuの時の操作です。)
 cd /var/www
 sudo mkdir chart
+ ダウンロードしたpChart.1.27d.rarをApacheのドキュメントルートの下に作成したchartディレクトリに移動またはコピーします。~
この記事の時は、/tmp/にpChart.1.27d.rarをダウンロードしたので、以下のコマンドでコピーしました。
 sudo cp /tmp/pChart.1.27d.rar /var/www/chart/
+ pChart.1.27d.rarをunrarコマンドで解凍(展開)します。
 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$

* pChartのサンプルを実行してみる [#fef3724c]
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をブラウザでアクセスした時のスクリーンショットです。
#ref(04.gif)

サンプルコードでは、Exampleを実行した場所にファイルを作成し保存するものが多いと思います。~
よって、pChartでは画像をそのままブラウザに出力したり、画像ファイルを作成したりすることができるます。

* pChart関連のURL [#v37ca2bb]
pChartを使用するにあたり、参考になると思われるURLを以下に記します。
- pChart Documentation~
http://pchart.sourceforge.net/documentation.php
-pChartの部屋~
http://www.t-net.ne.jp/~cyfis/p_chart/

以上、PHPで簡単にグラフ描画ができるpChartの紹介でした。

#htmlinsertpcsp(web-btm.html,web-sp.html)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS