/* グラフ作成 */
$graph = new Graph(350, 250, "auto");
$graph->SetScale("textlin", 0, 100);
$graph->SetY2Scale("lin", 0, 300);
/* X軸項目追加 */
$graph->xaxis->SetTickLabels($a);
/* plot作成 */
$bplot1 = new BarPlot($y1data);
$bplot1->value->Show();
$bplot1->value->SetFormat('%d');
$bplot2 = new BarPlot($y2data);
$bplot2->value->Show();
$bplot2->value->SetFormat('%d');
/* グラフ上に描画 */
$graph->Add($bplot1);
$graph->AddY2($bplot2);
/* グラフ表示 */
$graph->Stroke();
そこで 2 つのグラフを値 0 の dummy グラフとグループ化しておき、その GroupBarPlot を表示することで 2 つの棒グラフが並んで表示されるようにすることができる。
/* グラフ作成 */
$graph = new Graph(350, 250, "auto");
$graph->SetScale("textlin", 0, 100);
$graph->SetY2Scale("lin", 0, 300);
/* 右側の Y 軸で値が全部表示できないのでグラフを表示する場所の
* margin を指定する
*/
$graph->img->SetMargin(50, 70, 30, 40);
/* X軸項目追加 */
$graph->xaxis->SetTickLabels($a);
/* plot作成 */
$bplot1 = new BarPlot($y1data);
$bplot1->value->Show();
$bplot1->value->SetFormat('%d');
$bplot2 = new BarPlot($y2data);
$bplot2->value->Show();
$bplot2->value->SetFormat('%d');
/* 単純に bplot1, bplot2 を表示するとグラフが重なってしまうので
* $zerodata のダミーを間に挟んでグループ化して
* bplot1, bplot2 が並んでいるように表示する
*/
$bplotzero = new BarPlot($zerodata);
$bgplot1 = new GroupBarPlot(array($bplot1, $bplotzero));
$bgplot2 = new GroupBarPlot(array($bplotzero, $bplot2));
/* グラフ上に描画 */
$graph->Add($bgplot1);
$graph->AddY2($bgplot2);
/* グラフ表示 */
$graph->Stroke();


0 件のコメント:
コメントを投稿