一か月単位の記録など、横軸と縦軸のレンジを予め定めておいてから、線グラフを描画したいというシーンはよくあります。
今回は、Google Chart の Line Chart を使用して、そのようなグラフを描いてみたいと思います。
パッケージのロード
Line Chart なので、最新版の’corechart’ をロードします。
google.charts.load('current', {'packages':['corechart']});
データセット・描画
日付毎に体重を記録するという体でデータをセットし、描画してみます。
<!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.addRow([new Date(2021, 2, 1), 63.5]);
				data.addRow([new Date(2021, 2, 2), 62.5]);
				data.addRow([new Date(2021, 2, 3), 63.5]);
				data.addRow([new Date(2021, 2, 4), 61.0]);
				data.addRow([new Date(2021, 2, 5), 62.0]);
				data.addRow([new Date(2021, 2, 6), 60.5]);
 
				var chart = new google.visualization.LineChart(document.getElementById('chart'));
				chart.draw(data);
			}
		</script>
	</head>
	<body>
		<div id = "chart" />
	</body>
</html>
グラフを確認すると、このようになっています。

これはこれでまあ悪くはないのですが、横軸にはあらかじめ一か月分を表示し、縦軸ももう少し広い範囲を出しておきたいところです。
横軸レンジの設定
横軸を一か月分設定し表示するには、今回の場合は Date クラスを使用します。
オプションとして hAxis を次のように定義しておきます。
2021年3月1日から3月31日まで表示するための設定です。
					hAxis: {
						format: 'yyyy年MM月dd日',
						viewWindow: {
							min: new Date(2021, 2, 1),
							max: new Date(2021, 2, 31)
						}
					}
縦軸レンジの設定
縦軸のレンジも決定しておきます。
0kg ~ 80kg ぐらいまで表示しておくようにします。
縦軸のオプションは vAxis を使います。
					vAxis: {
						viewWindow: {
							min: 0,
							max: 80
						}
					}
サンプルコードと動作確認
これまで追加したオプションも含めた全体のサンプルコードはこのようになります。
<!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.addRow([new Date(2021, 2, 1), 63.5]);
				data.addRow([new Date(2021, 2, 2), 62.5]);
				data.addRow([new Date(2021, 2, 3), 63.5]);
				data.addRow([new Date(2021, 2, 4), 61.0]);
				data.addRow([new Date(2021, 2, 5), 62.0]);
				data.addRow([new Date(2021, 2, 6), 60.5]);
				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: 80
						}
					}
				};
 
				var chart = new google.visualization.LineChart(document.getElementById('chart'));
				chart.draw(data, options);
			}
		</script>
	</head>
	<body>
		<div id = "chart" />
	</body>
</html>
では描画してみましょう。このようになります。
横軸が3月の一か月分、縦軸が0~80のレンジで表示されているのがわかります。

