このエントリーをはてなブックマークに追加


PHPのグラフツールpChartを設置してみた

以下のURLで公開されている pChart - a PHP class to build charts をPHP+Apache2環境に設置して動作確認を行った時の備忘録です。
http://pchart.sourceforge.net/

 

スポンサーリンク

動作確認環境

動作確認は以下の環境で行いました。

  • 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環境を使用しました。

pChartにはGDライブラリが必要

本資料の動作環境は、以下の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ライブラリがインストールされたのが確認できます。

  1. GDライブラリ(php5-gd)インストール完了後、Apacheを再起動
    sudo /etc/init.d/apache2 restart
  2. 以下のPHPスクリプトを作成しドキュメントルートに配置
    <?php phpinfo(); ?>
  3. ブラウザにてアクセスしgdがインストールされていることを確認。
    01.gif
     

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

pChartのダウンロード

  1. 以下のURLからpChartをダウンロードします。
    http://pchart.sourceforge.net/download.php
     
    02.gif
     
  2. pChart.1.27d.rar をダウンロードしました。
    03.gif
     

rarの解凍(展開)

ダウンロードしたファイルはrar形式で圧縮されています。
Windowsであれば解凍(展開)してからApache環境のドキュメントルートに移動した方が簡単だと思います。
以下にLinux(Ubuntu)上でrar形式の解凍方法を記します。

  1. unrarをインストールする 以下のコマンドでunrarをインストールします。
    sudo apt-get install unrar
  2. ドキュメントルートにchartディレクトリを作成。(以下、Ubuntuの時の操作です。)
    cd /var/www
    sudo mkdir chart
  3. ダウンロードしたpChart.1.27d.rarをApacheのドキュメントルートの下に作成したchartディレクトリに移動またはコピーします。
    この記事の時は、/tmp/にpChart.1.27d.rarをダウンロードしたので、以下のコマンドでコピーしました。
    sudo cp /tmp/pChart.1.27d.rar /var/www/chart/
  4. 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のサンプルを実行してみる

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をブラウザでアクセスした時のスクリーンショットです。

04.gif

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

pChart関連のURL

pChartを使用するにあたり、参考になると思われるURLを以下に記します。

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


スポンサーリンク

添付ファイル: file01.gif 633件 [詳細] file02.gif 622件 [詳細] file03.gif 608件 [詳細] file04.gif 694件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-20 (金) 22:36:02