Pear::Image_Graph その4

Image_Graph 問題点対処概要

Image_Graph の問題点については Image_Graph の概要 のところでも説明しました。
すなわち、折線をうまく表示することができないのです。
$Plot に折線の通過位置 $Dataset を設定し、表示エリア $Plotarea に追加して、line を設定
$Plot = $Plotarea->addNew('line', $Dataset);
とすれば、折線グラフが表示できるはずなのですがこれができません。
どうも、PHP-5.2 まではできていたようなのですが、PHP-5.3 以降はできなくなってしまったようです。
Pear ご本家には、
2012-03-07
 addNew line with dataset doesn't plot
なるバグ報告がされていますが、どうも改善されていないようです。
仕方なく、
$Plot = $Plotarea->addNew('area', $Dataset);
を使用して折線グラフを作成してきました。
・・・対処方法①
ここでは、この問題を全面回避する方法について考えていきます。

Image_Graph の問題点対処方法

対処方法①では例えば、折線が2本ありこの折線がクロスした場合、 先に書いた折線Aが、後に書いた折線Bの下になってしまい AがBに隠れて見えなくなってしまいます。
この大きな問題を回避していきます。
PHP 標準クラスのなかに GD があります。
このなかに、
imageCopyMerge 関数
imageCreateFromPng 関数
がありますので これを利用して問題を解決していきます。
GD は PHP5 以降であれば特別なインスト-ルも必要ありません。

具体的対処方法

まず、折線Aをグラフキャンパス0に描きます。
このグラフをグラフAとします。
次ぎに、折線Bをグラフキャンパス1に描きます。
このグラフをグラフBとします。
次ぎに、折線Cをグラフキャンパス2に描きます。
このグラフをグラフCとします。
できた3つのグラフを imageCopyMerge 関数で合成して グラフABC を作成します。
このざっくりした流れをフロ-チャ-トにすると

Pear::Image_Graph クロスグラフ作成フロ-チャ-ト

のようになります。

クロスグラフファイル作成

それでは、フロ-チャ-トに従ってクロスグラフファイル p_gra-62-xtype-3.php を作成を作成していきます。
作成例を下記に示します。

Pear::Image_Graph を使用したクロスグラフ例
 

各種の折れ線グラフを作成可能ですが、まずは3本のクロスする折線グラフを作成していきます。

これで、Image_Graph の問題点対処概要の説明は終わりです。
引き続き、Image_Graph 問題点対処グラフファイル作成について説明していきます。


Image_Graph 問題点対処グラフファイル作成 に続く

63Pear Villageに戻る