Pear::Image_Graph

Image_Graph 基本ファイル作成

それでは、Image_Graph 基本ファイル p_gra-54.php を作成します。
作成ファイル内容は、
63Pear Village に戻り
左サイドナビ「Pear::Image_Graph」の中の
Image_Graph 基本 PHP ファイル
から見てください。

Pear::Image_Graph ファイル読込

グラフ作成にまず必要になるのが、Image_Graph クラスですのでこれを読み込みます。
include 'Image/Graph.php';

グラフキャンパス作成

Image_Graph オブジェクトを作成します。
これによりキャンパスの骨格ができ上がります。
Pear が好きな factory( ) メソッドを使用して骨格を作ります。
Factory method は Image_Graph objects を作成します。
( ) の中は、第一引数は 'graph'、第二引数でグラフのサイズと画像書式 png 又は jpg を指定
画像書式は省略するとデフォルトで png が設定されます。
$Graph = Image_Graph::factory('graph', array(400, 300));   ①
又は、
$Graph = Image_Graph::factory('graph', array(array('width' => 400, 'height' => 300, 'canvas' => 'png'));
となりますが、①の書式が簡単で良いと思います。   

フォントの設定

キャンバスのなかで使用するフォントを設定します。
日本語を使用したいので、日本語フォントを選びます。
C:\Windows\Fonts
の中にある日本語フォントはどれも
*****.ttc
でこれでは動かないようです。
そこで、フリ-の日本語フォントで、*.ttf のものを探して、これを利用します。
IPAフォント サイト
に行くと
IPAex明朝 (Ver.003.01)
ipaexm00301.zip(5.42MB)
をダウンロ-ドすることができますのでこれを解凍後 ipaexm.ttf を fonts フォルダに置きます。
XAMPP 環境で言うと
C:\xampp\htdocs\p_gra\fonts\ipaexm.ttf
となります。
そして、addNew( )メソッドを使用して
$Font = $Graph->addNew('font', 'fonts/ipaexm');
又は
$Font = $Graph->addNew('font', './fonts/ipaexm.ttf');
.ttf は省略可
とし、グラフキャンパス $Graph に setFont( )メソッドでフォントを設定します。
$Graph->setFont($Font);
なお PHP7 では、このフォント設定はできませんので、日本語は使用できません、英文字を使用します。

キャンバスの配置割合

①でキャンパスオブジェクト $Graph を作成しました。
このなかにさらにサブのキャンパスオブジェクトを作成していきます。

  1. タイトル欄

    Image_Graph::factory('title',array('サンプルグラフ表示',12)),
    12 は font の表示ピクセル数指定と思われます。

  2. 凡例欄 $Legend

    $Legend = Image_Graph::factory('legend')

  3. グラフ欄 $Plotarea

    $Plotarea = Image_Graph::factory('plotarea'),

の3つを作ります。
縦に欄をならべていきますので、
Image_Graph::vertical( )オブジェクトと add メソッドを使用して
$Graph->add(Image_Graph::vertical(・・・・・),指定縦欄の高さ割合%)
の様な書式で設定します。
ちなみに、今回高さは 300px ですので、タイトル欄は
300px の 6% で 18px なり、ここに 12px の文字が入ることになります。
ここまでをまとめると

  $Graph->add(
   Image_Graph::vertical(
    Image_Graph::factory
     ('title',array
      ('サンプルグラフ表示',12)),
    Image_Graph::vertical(
     $Legend =
      Image_Graph::factory
       ('legend'),
     $Plotarea =
      Image_Graph::factory
       ('plotarea'),8 // 凡例の割合
    ),6 // タイトルの割合
   )
  );

となります。
そして凡例欄を有している $Legend の中に setPlotarea メソッドで $Plotarea を入れ込んで、グラフを表示させます。
$Legend->setPlotarea($Plotarea);

棒グラフを描くための準備

棒グラフを描いたときの棒の内部の色を設定するためのオブジェクトを factory を使用して作成しておきます。
$fillColor = Image_Graph::factory('Image_Graph_Fill_Array');
このオブジェクトを利用してあとで、棒グラフの内部の色を設定します。

背景色設定

背景色設定を設定します。
これを省略すると背景色は黒になります。
例えば、棒グラフの色を黒にすると背景色が黒のままだと棒グラフが見えません。
又、エリアグラフを作成したとき、折線上部は背景が見えて黒く折線下部は白く見えます。
ここでは、背景色を青色に設定します。
$Plotarea->setFillColor('blue@0');
表示したグラフエリア $Plotarea を 'blue' 透明度を '@0' にしました。
@0 とすると全くの透明です。
@0.5 とすると 青色半透明になります。
@1 とすると全くの青色となります。
ただし、目盛りエリア、タイトルエリア、凡例エリアには適用されせん。

XY 軸設定

XY 軸の最大最小値を設定します。
まず、XY 軸のオブジェクトを取得します。
$axis_y =& $Plotarea->getAxis('y');
次ぎに縦軸の最大最小値を設定します。
$axis_y->forceMinimum(2);
$axis_y->forceMaximum(22);
forceMinimum( ) メソッドの( ) 内の引数には軸値の最小を指定します。
forceMaximum( ) メソッドの( ) 内の引数には軸値の最大を指定します。
今回は指定しませんが、横軸 X 軸ならば、
$axis_x =& $Plotarea->getAxis('x');
$axis_x->forceMinimum(*);
$axis_x->forceMaximum(**);
のようになります。

これで、グラフエリア $Plotarea の画面準備が完了しました。
引き続き、折線グラフや棒グラフを入れ込んでいきます。


Image_Graph 基本ファイル作成-2 に続く
Image_Graph 準備-2 に戻る

63Pear Villageに戻る