積み上げ棒グラフ(AccBarPlotクラス)

広告

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

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

CLASS AccBarPlot EXTENDS BarPlot

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

Construct a new accumulated bar graph

Parameter:
  $plots  Array of bar plots

積み上げたい棒グラフのオブジェクトを先に作成しておき、そのオブジェクトを配列にしたものを引数としてコンストラクタに渡してAccBarPlotクラスのオブジェクトを作成します。複数の棒グラフを並べて表示するにはGroupBarPlotクラスを使っていましたが、グループにまとめる代わりに積み上げ棒グラフとして1つの棒グラフにしてからグラフに追加します。

※複数の積み上げ棒グラフを作成し、それらをグループとしてまとめて並べて表示する事も可能です。

4番目の引数で影を表示するかを指定します。デフォルトで「true」になっています。

例えば次のように記述します。

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

$barplot1 = new BarPlot($ydata1);
$barplot2 = new BarPlot($ydata2);

$accbarplot = new AccBarPlot(array($barplot1, $barplot2));

$graph = new Graph(250, 200); 

$graph->Add($accbarplot);

サンプル

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

sample8-1.php

<?php

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

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

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

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

$barplot1 = new BarPlot($ydata1);
$barplot1->SetFillColor("orange");

$barplot2 = new BarPlot($ydata2);
$barplot2->SetFillColor("blue");

$accbarplot = new AccBarPlot(array($barplot1, $barplot2));

$graph->Add($accbarplot);

$graph->Stroke();
?>

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

積み上げ棒グラフを作成する

( Written by Tatsuo Ikura )