PHPでウェブの世界と繋がろう!
menu
ホーム > PHPテクニック > PHPのPEARを利用したグラフ作成

PHPのPEARを利用したグラフ作成

Pocket

説明

PHPのPEARを利用したグラフ作成

GD拡張モジュールの確認
 最初にPHP拡張モジュールの「GD」拡張モジュールがインストールされているか確認をして下さい。GD拡張モジュールはPHP4.3以降デフォルトで同梱されています。

phpinfo();

で確認できます。
「gd」表記内容を確認して下さい。

gd
GD Support enabled
GD Version bundled (2.0.34 compatible)
FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.2.1
GIF Read Support enabled
GIF Create Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
XBM Support enabled
グラフ作成に必要なPEARのインストール
PEARのインストールディレクトリを確認
phpinfo();でPEARのinclude_pathを確認できます。ディレクトリを閲覧すればインストール内容を確認できます。

必要とされるライブラリ

  • Image_Color
  • Image_Canvas
  • Numbers_Roman
  • Numbers_Words
  • Image_Graph
PEARのバージョンを確認
SSHでサーバーにアクセスしてPEARのバージョンを確認する。

pear version

PEAR Version: ******
PHP Version: ******
と表示されるのでバージョンを確認できます。

Image_Colorをインストール
pear install Image_Color2-0.1.5

http://pear.php.net/package/Image_Color2/download
Dependencies(環境):
 PHP Version: PHP 5.0.0 or newer
 PEAR Package: PEAR Installer 1.4.0a1 or newer

Image_Canvasをインストール
pear install Image_Canvas-0.3.3

http://pear.php.net/package/Image_Canvas/download
Dependencies(環境):
 PHP Version: PHP 4.3.0 or newer
 PEAR Package: PEAR Installer 1.8.1 or newer
 PEAR Package: Image_Color 1.0.0 or newer
 PHP Extension: gd

Numbers_Romanをインストール
pear install Numbers_Roman

http://pear.php.net/package/Numbers_Roman/download
Dependencies(環境):
 PHP Version: PHP 4.3.0 or newer
 PEAR Package: PEAR Installer 1.5.0 or newer

Numbers_Wordsをインストール
pear install Numbers_Words-0.16.2

http://pear.php.net/package/Numbers_Words/download/
Dependencies(環境):
 PHP Version: PHP 4.0.0 or newer
 PEAR Package: PEAR Installer 1.4.0b1 or newer
 PEAR Package: Math_BigInteger

Image_Graphをインストール
pear install Image_Graph-0.8.0

http://pear.php.net/package/Image_Graph/download/
Dependencies(環境):
 PHP Version: PHP 5.0.0 or newer
 PEAR Package: PEAR 1.4.0b1 or newer
 PEAR Package: PEAR 1.3.1 or newer
 PEAR Package: Image_Canvas 0.3.0 or newer
 PEAR Package: Numbers_Roman (optional)
 PEAR Package: Numbers_Words (optional)

折れ線グラフ サンプル

<?php
####################################################################
### 折れ線グラフ
####################################################################

### PEARパス phpinfo();で確認
require_once 'Image/Graph.php';

### キャンバスの作成
$aParam = array(array('width' => 500, 'height' => 500, 'canvas' => 'png'));
$oGraph =& Image_Graph::factory('graph', $aParam);

### タイトルとグラフデータを描画するエリアを作成
$sImageText = mb_convert_encoding('GRAPH',"UTF-8","UTF-8");
$oGraph->add(
	Image_Graph::vertical(
		Image_Graph::factory('title', array($sImageText, 18)),
		Image_Graph::vertical(
			$oPlotArea1 = Image_Graph::factory('plotarea'),
			$oPlotArea2 = Image_Graph::factory('legend'),
			80
		),
		17// タイトルを表示する縦サイズの割合%
	)
);

### 2つ目のエリアを凡例用に使用
$oPlotArea2->setPlotarea($oPlotArea1);

### 線グラフ1作成
$aGraphData[0] =& Image_Graph::factory('dataset');
$aGraphData[0]->addPoint('a', 10);
$aGraphData[0]->addPoint('b', 15);
$aGraphData[0]->addPoint('c', 19);
$aGraphData[0]->addPoint('d', 2);
$aGraphData[0]->addPoint('e', 23);
$aGraphData[0]->addPoint('f', 8);
$aGraphData[0]->addPoint('g', 12);
$aGraphData[0]->addPoint('h', 16);
// タイトル設定
$sImageText = mb_convert_encoding('Type A',"UTF-8","UTF-8");
$aGraphData[0]->setName( $sImageText );

### 線グラフ2作成
$aGraphData[1] =& Image_Graph::factory('dataset');
$aGraphData[1]->addPoint('a', 6);
$aGraphData[1]->addPoint('b', 0);
$aGraphData[1]->addPoint('c', -2);
$aGraphData[1]->addPoint('d', 20);
$aGraphData[1]->addPoint('e', 10);
$aGraphData[1]->addPoint('f', 13);
$aGraphData[1]->addPoint('g', 9);
$aGraphData[1]->addPoint('h', 5);
// タイトル設定
$sImageText = mb_convert_encoding('Type B',"UTF-8","UTF-8");
$aGraphData[1]->setName( $sImageText );

### エリアにグラフを描画
$Plot =& $oPlotArea1->addNew('line', array($aGraphData));

### 線グラフ色指定
$FillArray =& Image_Graph::factory('Image_Graph_Line_Array');
$FillArray->addColor('black');
$FillArray->addColor('red');
$Plot->setLineColor($FillArray);

### データ値を表示
$Marker =& $Plot->addNew('Image_Graph_Marker_Value', IMAGE_GRAPH_VALUE_Y);
$Plot->setMarker($Marker);
$Plot->setDataSelector(Image_Graph::factory('Image_Graph_DataSelector_NoZeros'));

### x軸y軸の終点に矢印を表示
$AxisX1 =& $oPlotArea1->getAxis('x');
$AxisX1->showArrow();
$AxisY1 =& $oPlotArea1->getAxis('y');
$AxisY1->showArrow();

### 線グラフ出力
$oGraph->done( );
?>

→サンプルはこちら

棒グラフ サンプル

<?php
####################################################################
### 棒線グラフ
####################################################################

### PEARパス phpinfo();で確認
require_once 'Image/Graph.php';

### キャンバスの作成
$aParam = array(array('width' => 500, 'height' => 500, 'canvas' => 'png'));
$oGraph =& Image_Graph::factory('graph', $aParam);

### タイトルとグラフデータを描画するエリアを作成
$sImageText = mb_convert_encoding('GRAPH',"UTF-8","UTF-8");
$oGraph->add(
	Image_Graph::vertical(
		Image_Graph::factory('title', array($sImageText, 18)),
		Image_Graph::vertical(
			$oPlotArea1 = Image_Graph::factory('plotarea'),
			$oPlotArea2 = Image_Graph::factory('legend'),
			80
		),
		17// タイトルを表示する縦サイズの割合%
	)
);

### 2つ目のエリアを凡例用に使用
// データをランダム発生( データ数, 最小, 最大, 0 が必要か )

### 線グラフ1作成
$aGraphData[0] =& Image_Graph::factory('dataset');
$aGraphData[0]->addPoint('a', 10);
$aGraphData[0]->addPoint('b', 15);
$aGraphData[0]->addPoint('c', 19);
$aGraphData[0]->addPoint('d', 2);
$aGraphData[0]->addPoint('e', 23);
$aGraphData[0]->addPoint('f', 8);
$aGraphData[0]->addPoint('g', 12);
$aGraphData[0]->addPoint('h', 16);

// 棒グラフをエリアに描画
$Plot =& $oPlotArea1->addNew('bar', array(&$aGraphData)); 

// 線の部分(箱)の色
$Plot->setLineColor('gray'); 

// 箱の中の色( 色@濃度 )
$Plot->setFillColor('blue@0.2');

### x軸y軸の終点に矢印を表示
$AxisX1 =& $oPlotArea1->getAxis('x');
$AxisX1->showArrow();
$AxisY1 =& $oPlotArea1->getAxis('y');
$AxisY1->showArrow();

### 線グラフ出力
$oGraph->done( );
?>

→サンプルはこちら

タグ(=記事関連ワード)

タグ: , ,

日付

投稿日:2011年11月21日
最終更新日:2012年07月25日

関連記事

配列関数サンプル

このカテゴリの他のページ

この記事へのコメント

トラックバックurl

http://www.tryphp.net/phpref-tech_peargraph/trackback/