[Google Charts] ComboChart

投稿者: | 2021年3月18日

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となります。

描画結果が冒頭で示したこちらになります。