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
となります。
棒-折線グラフ共通項目設定
最初に棒-折線グラフの共通項目について設定していきます。
- グラフファイル出力
SetIsInline メソッドを使って、
$plot -> SetIsInline(true);
とし、sample3.png なるグラフファイルが出力されるようにします。 - フォントパス指定
タイトル表示に日本語を使用していますので、日本語の ttf フォント設定が必要です。
日本語フォントが置かれていくフォントパスを指定します。
$plot -> SetTTFPath
(dirname(__FILE__).'/fonts');
dirname(__FILE__) は自身がいるディレクトリの絶対パスを返すPHP関数でしたね。
$plot -> SetDefaultTTFont('ipaexg.ttf');
とすれば、日本語フォント設定は完了です。 - X,Y軸の目盛文字表示フォント設定
X軸の目盛文字表示フォントを設定するには SetFontTTF メソッドで行います。
X軸目盛文字表示フォントを設定は
$plot -> SetFontTTF('x_label', 'ipaexg.ttf', 9);
第3引数はフォントの大きさで 9px に設定しました。
Y軸目盛文字表示フォントを設定は
$plot -> SetFontTTF('y_label', 'ipaexg.ttf', 9);
です。 - 目盛文字やタイトルが見えるようにする
プロットエリアとラベルのマージンを指定するメソッド
SetMarginsPixels
を使って目盛文字やタイトルが見えるようにします。
$plot -> SetMarginsPixels(30, 30, 30, 40);
引数には順に、左 右 上 下 のマ-ジン量をピクセル単位で指定します。
これらを0に設定すると プロットエリア=グラフ全体 になって目盛文字やタイトルが見えなくなってしまいます。 - タイトル表示
横書きグラフタイトルを表示するには SetXTitle メソッドで行います。
$plot -> SetXTitle('1~10月成績','plotdown');
第1引数は表示タイトル名です。
第2引数にはタイトル表示位置を書きます。
・plotdown ・・・ タイトルをグラフ下部に表示
・plotup ・・・ タイトルをグラフ上部に表示
・both ... plotdown/plotup の両方
・none ・・・ 表示しない
棒グラフ作成
次ぎに棒グラフから作成していきます。
- 棒グラフデ-タ
表示する棒グラフのデ-タ値を定義します。
$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
のデ-タを設定しました。
それでは順次グラフの仕様を決めていきましょう。 - 棒グラフに設定
グラフの種類は SetPlotType メソッドで行います。
$plot -> SetPlotType('bars');
とすると、棒グラフが作成されます。
ちなみに、グラフの種類には次のものがあります。
・thinbarline … 線状棒グラフ
・area … エリアグラフ
・lines … 折線グラフ
・linepoints … 折線グラフにデータの点をプロット(デフォルト)
・points … データの点のみをプロット
・stackedbars … 各要素を積み重ね - グラフデ-タ設定
SetDataValues メソッドで グラフデ-タ $data1 をキャンンパスに設定します。
$plot -> SetDataValues($data1); - 棒グラフの凡例のラベル表示
ラベル表示位置は SetLegendPixels メソッドを使用します。
$plot -> SetLegendPixels(40,10);
( )にグラフ左上隅からの座標を px 単位で指定します。
棒の名前は SetLegend メソッドを使用します。
$plot -> SetLegend(array('test1','test2'));
'test1','test2'の二つの名前を配列で設定しました。
- 棒グラフ X,Y目盛値の最大,最小値設定
X,Y目盛値の最大,最小は SetPlotAreaWorld メソッドを使用します。
$plot -> SetPlotAreaWorld(0, 0, 10, 10);
( )内には、
X目盛最小値,Y目盛最小値
X目盛最大値,Y目盛最大値
の順にその値を指定します。 - 棒グラフ出力
DrawGraph メソッドで 棒グラフを一旦メモリ上に出力します。
$plot -> DrawGraph();
ここまでで、棒グラフができあがりました。
やっと道半ばです。
次ぎに、これに重ねて折線グラフを作成します。
引き続き、PHPlot 折線-棒グラフファイルの後半(折線グラフ部)を作成していきます。
長くなりましたのでここで一旦切りたいと思います。
PHPlot 折線-棒グラフファイル作成その2 に続く
PHPlot 棒グラフファイル作成 に戻る