1 日のデータの変化をリアルタイムで示すグラフを描く必要があります。Google Charts Playgroundで遊んで視覚化する方法を確認しましたが、X 軸を固定するために hAxis.viewWindow.max オプションを設定できませんでした。
テストに使用したコードは次のとおりです。
function drawVisualization() {
// Create and populate the data table.
var data = new google.visualization.DataTable();
data.addColumn('timeofday', 'x');
data.addColumn('number', 'S0');
data.addColumn('number', 'S1');
data.addColumn('number', 'S2');
data.addRows([
[[0,0,0,0], 1, 1, 0.5],
[[1,0,0,0], 2, 0.5, 1],
[[2,0,0,0], 4, 1, 0.5],
]);
// Create and draw the visualization.
new google.visualization.LineChart(document.getElementById('visualization')).
draw(data, {curveType: "function",
width: 500, height: 400,
vAxis: {maxValue: 10},
hAxis: {maxValue: [23,59,59,0], minValue:[0,0,0,0], viewWindow:{max: [23, 59, 59, 0]}}}
);
}
ドキュメントでは、hAxis.viewWindow.max が数値を受け取ると主張していますが、「timeofday」タイプを数値として表す方法が見つかりませんでした。それを使用すると、X 軸は午前 0 時から午前 2 時まで移動しますが、軸が深夜まで移動する必要がありました。
同じ問題で、列タイプとして「datetime」を使用してみました。
以下のサンプルは、数値を使用して、意図したとおりに機能し、ポイントがある場所に線を描画しますが、最大値までグリッドを拡張します。
function drawVisualization() {
// Create and populate the data table.
var data = new google.visualization.DataTable();
data.addColumn('number', 'x');
data.addColumn('number', 'S0');
data.addColumn('number', 'S1');
data.addColumn('number', 'S2');
data.addRows([
[0, 1, 1, 0.5],
[1, 2, 0.5, 1],
[2, 4, 1, 0.5],
]);
// Create and draw the visualization.
new google.visualization.LineChart(document.getElementById('visualization')).
draw(data, {curveType: "function",
width: 500, height: 400,
vAxis: {maxValue: 10},
hAxis: {maxValue: 23, minValue:0, viewWindow:{max: 23}}}
);
}
</p>