ComboChartとは、複数種類のグラフを一つの図に表現できるチャートです。
こんなグラフや
こんなグラフが描画できます。
描画できるグラフは次の5種類です。
- line
- area
- bars
- candlesticks
- stepped area
グラフの種類指定なし
ComboChartでグラフの種類を指定しないと、デフォルトで折れ線グラフになります。
<!DOCTYPE HTML> <html xmlns:th="http://www.thymeleaf.org"> <head> <title>expense page</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <script type="text/javascript"> google.charts.load('current', {'packages':['corechart']}); google.charts.setOnLoadCallback(drawChart); function drawChart() { var data = new google.visualization.DataTable(); data.addColumn('date', '日付'); data.addColumn('number', '残高'); data.addColumn('number', '支出'); data.addRow([new Date(2021, 2, 1), 5000, 0]); data.addRow([new Date(2021, 2, 10), 4000, 1000]); data.addRow([new Date(2021, 2, 20), 2500, 1500]); var options = { width: 600, height: 400, hAxis: { format: 'yyyy年MM月dd日', viewWindow: { min: new Date(2021, 2, 1), max: new Date(2021, 2, 31) } }, vAxis: { viewWindow: { min: 0, max: 10000 } }, }; var chart = new google.visualization.ComboChart(document.getElementById('chart')); chart.draw(data, options); } </script> </head> <body> <div id = "chart" /> </body> </html>
データテーブルの2番目以降のカラムがデータとして扱われ、各々の系列ごとに折れ線グラフが引かれます。
グラフの種類指定あり
上で描画した2本の折れ線グラフの一方を、棒グラフにしてみます。
下記のように、optionに1行付け加えます。
var options = { width: 600, height: 400, hAxis: { format: 'yyyy年MM月dd日', viewWindow: { min: new Date(2021, 2, 1), max: new Date(2021, 2, 31) } }, vAxis: { viewWindow: { min: 0, max: 10000 } }, series: {1: {type: 'bars'}} };
seriesオプションにて、棒グラフにしたいデータのインデックスを指定します。
今回は2番目のデータを棒グラフにします。インデックスは0から始まるので、指定する値は1となります。
描画結果が冒頭で示したこちらになります。