ここでの複合グラフとは、棒グラフと折線グラフを重ねたグラフのことです。
棒グラフと折線グラフを複合したグラフを作成します。右図のような単純なものなら、簡単に記述できます。
type: "bar", // 一応棒グラフだとしておく : datasets: [ { // 棒グラフにする系列はそのまま label: "生産量", data: [100, 200, 250, 150, 200], : }, { type: "line", // この系列を折線グラフだと指定 label: "構成比", data: [ 20, 50, 10, 30, 40], : } ]
上図の「基本形」では、棒グラフ(生産量)と折線グラフ(構成比)が同一スケールのため、折線グラフがわかりにくくなっています。それで、右図のように、図の右側に「Y右軸」を設定しました。
datasets: [ { label: "生産量", : yAxisID: "Y左軸" // option でのY左軸の定義に従う }, { type: "line", label: "構成比", : yAxisID: "Y右軸" // option でのY右軸の定義に従う } ], options : scales: { yAxes: [ : // Y左軸に関しては省略 { id: "Y右軸", // Y右軸の定義 position: "right", // 図の右側に配置 gridLines: { // 補助線の定義 color: "rgba(0, 0, 255, 0.2)" }, scaleLabel: { // 右側のラベル display: true, labelString: "構成比(%)", fontColor: "blue", fontSize: 14 }, ticks: { // 右側の目盛り fontColor: "blue", min: 0, max:80, stepSize: 20 } }
棒グラフ(bar)と折線グラフ(line)の複合グラフの場合、全体のタイプを bar とし、個別系列のタイプを line にする必要があります(私は理由がわかりません)。
また、後で指定した系列に前系列が上書きされるようです。そのため、塗りつぶしのない系列(ここでは折線)を前に記述するほう(AよりもCのほう)のほうが見やすくなります。
複合グラフA
type: "bar", : datasets: [ { : 生産量 }, { type: "line", : 構成比 }
複合グラフB
type: "line", : datasets: [ { type: "bar", : 生産量 }, { : 構成比 }
複合グラフC
type: "bar", : datasets: [ { type: "line", : 構成比 }, { : 生産量 }
複合グラフD
type: "line", : datasets: [ { : 構成比 }, { type: "bar", : 生産量 }