/* グラフ作成 */ $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 件のコメント:
コメントを投稿