積み上げ線グラフ(AccLinePlotクラス)

広告

積み上げ線グラフの作成を行います。積み上げ線グラフとは複数の線グラフを個別に表示するのではなく、同じX軸の値に対応する複数の線グラフの値を合計した結果を表示するグラフのことです。

積み上げ線グラフを作成するにはAccLinePlotクラスのオブジェクトを作成しGraphクラスのオブジェクトに追加します。AccLinePlotクラスは「jpgraph_line.php」内で定義されています。

CLASS AccLinePlot EXTENDS Plot

コンストラクタは次のようになっています。

Constructor

Parameter:
  $plots  Array of line plots to use

積み上げたい線グラフのオブジェクトを先に作成しておき、そのオブジェクトを配列にしたものを引数としてコンストラクタに渡してAccLinePlotクラスのオブジェクトを作成します。そしてグラフには個々の線グラフを追加するのではなく、積み上げ線グラフを追加します。

実際には次のような記述となります。

$ydata1 = array(10, 4, 7, 9, 2, 3);
$ydata2 = array(3, 6, 10, 4, 4, 8);

$lineplot1 = new LinePlot($ydata1);
$lineplot2 = new LinePlot($ydata2);

$acclineplot = new AccLinePlot(array($lineplot1, $lineplot2));

$graph = new Graph(250, 200); 

$graph->Add($acclineplot);

サンプル

それでは実際に試して見ます。

sample10-1.php

<?php

include ("jpgraph/jpgraph.php");
include ("jpgraph/jpgraph_line.php");

$graph = new Graph(300, 200, "auto"); 
$graph->SetFrame(true);
$graph->SetScale("textlin");

$graph->img->SetMargin(40, 40, 30, 30);

$ydata1 = array(10, 4, 7, 9, 2, 3);
$ydata2 = array(3, 6, 10, 4, 4, 8);

$lineplot1 = new LinePlot($ydata1);
$lineplot1->SetColor(array(255, 0, 0));
$lineplot2 = new LinePlot($ydata2);
$lineplot2->SetColor(array(0, 0, 255));

$acclineplot = new AccLinePlot(array($lineplot1, $lineplot2));

$graph->Add($acclineplot);

$graph->Stroke();
?>

上記のPHPファイルをブラウザで開いてみます。ブラウザには次のように表示されます。

積み上げ線グラフの表示

積み上げ線グラフを塗りつぶす

積み上げ線グラフを構成する線グラフの線を塗りつぶしておくことで、各線グラフ毎に色分けされた積み上げ線グラフを表示することが出来ます。線グラフの塗りつぶしについては『線を塗りつぶして表示する』を参照して下さい。

では実際に試してみます。

sample10-2.php

<?php

include ("jpgraph/jpgraph.php");
include ("jpgraph/jpgraph_line.php");

$graph = new Graph(300, 200, "auto"); 
$graph->SetFrame(true);
$graph->SetScale("textlin");

$graph->img->SetMargin(40, 40, 30, 30);

$ydata1 = array(10, 4, 7, 9, 2, 3);
$ydata2 = array(3, 6, 10, 4, 4, 8);

$lineplot1 = new LinePlot($ydata1);
$lineplot1->SetColor("black");
$lineplot1->SetFillColor("orange");
$lineplot2 = new LinePlot($ydata2);
$lineplot2->SetColor("black");
$lineplot2->SetFillColor("yellow");

$acclineplot = new AccLinePlot(array($lineplot1, $lineplot2));

$graph->Add($acclineplot);

$graph->Stroke();
?>

上記のPHPファイルをブラウザで開いてみます。ブラウザには次のように表示されます。

線分が塗りつぶされた積み上げ線グラフを表示する

( Written by Tatsuo Ikura )