- Home ›
- JpGraphを使ったグラフの描画 ›
- 線グラフ(LinePlot) ›
- HERE
別のY軸を追加する
1つのグラフで2つ目のY軸を追加することが出来ます。この為、同じX軸の値に対して異なる範囲を持つデータを同じグラフ上に表示することが出来ます。2つ目のY軸はグラフの右側に独自の目盛りを表示します。
Y軸を追加する場合にはまず2本目のY軸の目盛の設定を行います。Graphクラスで用意されている「SetY2Scale」メソッドを使います。
SetY2Scale function SetY2Scale($aAxisType,$aY2Min,$aY2Max)
Specify secondary Y scale Parameter: $aAxisType Type of scale(Default "lin") $aY2Min Y2Min value(Default 1) $aY2Max Y2Max value(Default 1)
グラフの目盛りを設定する「SetScale」メソッドと基本的には同じです。ただし今回はX軸の設定は関係ないのでY軸に関する設定だけを行います。詳しくは『目盛の設定』を参照して下さい。
設定可能な値は「lin」「log」「int」のいずれかです。また目盛りの最小値と最大値の設定も2番目と3番目の引数で設定できます。
実際には次のような記述となります。
$graph = new Graph(250, 200, "auto"); $graph->SetScale("textlin"); $graph->SetY2Scale("lin");
2本目のY軸を対象としたオブジェクトの追加
次に2本目のY軸を対象としたデータを追加するにはGraphクラスで用意されている「AddY2」メソッドを使います。
AddY2 function AddY2(&$aPlot)
Add plot to second Y-axis Parameter: &$aPlot Plot to add to the Y2 axis
引数には追加したいLinePlotクラスのオブジェクトを指定します。
実際には次のような記述となります。
$graph = new Graph(250, 200, "auto"); $graph->SetScale("textlin"); $graph->SetY2Scale("lin"); $ydata1 = array(10, 4, 7, 9, 2, 3); $ydata2 = array(5, 12, 3, 8, 5, 9); $lineplot1 = new LinePlot($ydata1); $lineplot2 = new LinePlot($ydata2); $graph->Add($lineplot1); $graph->AddY2($lineplot2);
サンプル
それでは実際に試して見ます。
<?php include ("jpgraph/jpgraph.php"); include ("jpgraph/jpgraph_line.php"); $graph = new Graph(300, 200, "auto"); $graph->SetFrame(true); $graph->SetScale("textlin"); $graph->SetY2Scale("lin"); $graph->yaxis->SetColor(array(255, 0, 0)); $graph->y2axis->SetColor(array(0, 0, 255)); $graph->img->SetMargin(40, 40, 30, 30); $ydata1 = array(10, 4, 7, 9, 2, 3); $ydata2 = array(1200, 1800, 900, 300, 1100, 500); $lineplot1 = new LinePlot($ydata1); $lineplot1->SetColor(array(255, 0, 0)); $lineplot2 = new LinePlot($ydata2); $lineplot2->SetColor(array(0, 0, 255)); $graph->Add($lineplot1); $graph->AddY2($lineplot2); $graph->Stroke(); ?>
上記のPHPファイルをブラウザで開いてみます。ブラウザには次のように表示されます。
( Written by Tatsuo Ikura )