PHPlot グラフ表示

PHPlot 折線-棒グラフファイル作成

PHPlot 折線-棒グラフファイル phplot-bar_line.php を作成します。
作成ファイル内容は、
63Pear Village に戻り
左サイドナビ「PHPlot グラフ表示」の中の
PHPlot 折線-棒グラフ PHP ファイル
から見てください。
今回作成するグラフは、2本の折線と2本一組の棒グラフについて1月~10月分を描写します。
まずは、PHPlot パッケ-ジを読み込みます。
require_once 'davefx/phplot/phplot/phplot.php';
折線と棒グラフを描画するキャンパスを用意します。
PHPlot オブジェクトを生成し
$plot = new PHPlot(600,400,'sample3.png'));
とすると、横 600px × 縦 400px のグラフキャンパスができました。
'sample3.png' が作成されたグラフのファイル名になります。

フォントの設定

グラフキャンバスのなかで使用するフォントを設定します。
日本語を使用したいので、日本語フォントを選びます。
C:\Windows\Fonts
の中にある日本語フォントはどれも
*****.ttc
でこれでは動かないようです。
そこで、フリ-の日本語フォントで、*.ttf のものを探して、これを利用します。
IPAフォント サイト
に行くと、2書体パック(IPAex明朝(Ver.003.01)、IPAexゴシック(Ver.003.01)) がありますので これを利用します。
IPAex明朝もよいのですが、今回は IPAexゴシック(Ver.003.01)を使用します。
IPAexfont00301.zip(9.21MB)
をダウンロ-ドすることができますのでこれを解凍後 ipaexg.ttf を fonts フォルダに置きます。
XAMPP 環境で言うと phplot-bar_line.php を
C:\xampp\htdocs\plot_gra
\phplot-bar_line.php
のように置いていたとすると
C:\xampp\htdocs\plot_gra
\fonts\ipaexg.ttf
となります。

棒-折線グラフ共通項目設定

最初に棒-折線グラフの共通項目について設定していきます。

  1. グラフファイル出力

    SetIsInline メソッドを使って、
    $plot -> SetIsInline(true);
    とし、sample3.png なるグラフファイルが出力されるようにします。

  2. フォントパス指定

    タイトル表示に日本語を使用していますので、日本語の ttf フォント設定が必要です。
    日本語フォントが置かれていくフォントパスを指定します。
    $plot -> SetTTFPath
    (dirname(__FILE__).'/fonts');
    dirname(__FILE__) は自身がいるディレクトリの絶対パスを返すPHP関数でしたね。
    $plot -> SetDefaultTTFont('ipaexg.ttf');
    とすれば、日本語フォント設定は完了です。

  3. X,Y軸の目盛文字表示フォント設定

    X軸の目盛文字表示フォントを設定するには SetFontTTF メソッドで行います。
    X軸目盛文字表示フォントを設定は
    $plot -> SetFontTTF('x_label', 'ipaexg.ttf', 9);
    第3引数はフォントの大きさで 9px に設定しました。
    Y軸目盛文字表示フォントを設定は
    $plot -> SetFontTTF('y_label', 'ipaexg.ttf', 9);
    です。

  4. 目盛文字やタイトルが見えるようにする

    プロットエリアとラベルのマージンを指定するメソッド
    SetMarginsPixels
    を使って目盛文字やタイトルが見えるようにします。
    $plot -> SetMarginsPixels(30, 30, 30, 40);
    引数には順に、左 右 上 下 のマ-ジン量をピクセル単位で指定します。
    これらを0に設定すると プロットエリア=グラフ全体 になって目盛文字やタイトルが見えなくなってしまいます。

  5. タイトル表示

    横書きグラフタイトルを表示するには SetXTitle メソッドで行います。
    $plot -> SetXTitle('1~10月成績','plotdown');
    第1引数は表示タイトル名です。
    第2引数にはタイトル表示位置を書きます。
    ・plotdown ・・・ タイトルをグラフ下部に表示
    ・plotup  ・・・ タイトルをグラフ上部に表示
    ・both   ... plotdown/plotup の両方
    ・none   ・・・ 表示しない

棒グラフ作成

次ぎに棒グラフから作成していきます。

  1. 棒グラフデ-タ

    表示する棒グラフのデ-タ値を定義します。
    $data1 = array(
    array('1',3,7),
    array('2',2,2),
    array('3',8,7),
    array('4',7.1,9),
    array('5',2.3,1),
    array('6',2.3,1.2),
    array('7',6.7,1.5),
    array('8',1,1),
    array('9',7,6),
    array('10',9,9.5)
    );
    すなわち、
    1月に test1 = 3, test2 = 7
    ・・・・・・・・
    10月に test1 = 9, test2 = 9.5
    のデ-タを設定しました。
    それでは順次グラフの仕様を決めていきましょう。

  2. 棒グラフに設定

    グラフの種類は SetPlotType メソッドで行います。
    $plot -> SetPlotType('bars');
    とすると、棒グラフが作成されます。
    ちなみに、グラフの種類には次のものがあります。
    ・thinbarline … 線状棒グラフ
    ・area    … エリアグラフ
    ・lines    … 折線グラフ
    ・linepoints … 折線グラフにデータの点をプロット(デフォルト)
    ・points   … データの点のみをプロット
    ・stackedbars … 各要素を積み重ね

  3. グラフデ-タ設定

    SetDataValues メソッドで グラフデ-タ $data1 をキャンンパスに設定します。
    $plot -> SetDataValues($data1);

  4. 棒グラフの凡例のラベル表示

    ラベル表示位置は SetLegendPixels メソッドを使用します。
    $plot -> SetLegendPixels(40,10);
    ( )にグラフ左上隅からの座標を px 単位で指定します。
    棒の名前は SetLegend メソッドを使用します。
    $plot -> SetLegend(array('test1','test2'));
    'test1','test2'の二つの名前を配列で設定しました。

  5. 棒グラフ X,Y目盛値の最大,最小値設定

    X,Y目盛値の最大,最小は SetPlotAreaWorld メソッドを使用します。
    $plot -> SetPlotAreaWorld(0, 0, 10, 10);
    ( )内には、
    X目盛最小値,Y目盛最小値
    X目盛最大値,Y目盛最大値
    の順にその値を指定します。

  6. 棒グラフ出力

    DrawGraph メソッドで 棒グラフを一旦メモリ上に出力します。
    $plot -> DrawGraph();


ここまでで、棒グラフができあがりました。
やっと道半ばです。
次ぎに、これに重ねて折線グラフを作成します。
引き続き、PHPlot 折線-棒グラフファイルの後半(折線グラフ部)を作成していきます。
長くなりましたのでここで一旦切りたいと思います。


PHPlot 折線-棒グラフファイル作成その2 に続く
PHPlot 棒グラフファイル作成 に戻る 

63PearVillage に戻る