更新时间:2022-12-03 10:28:19
注释中的小提琴两件事
(1)循环中的语法无效
数组
(1) the syntax in the loop is invalid
nothing is being done with the array
for (var i = 0; i < 2; i++){
[ 'Washington', new Date(), new Date() ], // <-- ??
}
需要使用addRow
之类的
for (var i = 0; i < 2; i++){
dataTable.addRow([ 'Washington', new Date(), new Date() ]);
}
(2)可能是一个错误,但是如果所有行的开始日期和结束日期都相等,
图表将引发错误
(2) it may be a bug but if all the rows have equal start and end dates,
the chart will throw an error
// dates have close if not equal times
dataTable.addRow([ 'Washington', new Date(), new Date() ]);
请参阅以下工作片段,
添加了addRow
并修改了开始日期...
see following working snippet,
added addRow
and modified start date...
google.charts.load('current', {
callback: drawChart,
packages: ['timeline']
});
function drawChart() {
var container = document.getElementById('timeline');
var chart = new google.visualization.Timeline(container);
var dataTable = new google.visualization.DataTable();
dataTable.addColumn({ type: 'string', id: 'President' });
dataTable.addColumn({ type: 'date', id: 'Start' });
dataTable.addColumn({ type: 'date', id: 'End' });
for (var i = 0; i < 2; i++) {
dataTable.addRow([
'row ' + (i + 1),
new Date((new Date()).getTime() - ((i + 1) * 24 * 60 * 60 * 1000)),
new Date()
]);
}
chart.draw(dataTable);
}
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<div id="timeline" style="height: 180px;"></div>
编辑
这是一个使用类似数据的工作示例...
EDIT
here is a working example using similar data...
google.charts.load('current', {
callback: drawChart,
packages: ['timeline']
});
function drawChart() {
var jsonData = [{
"lineId": 1,
"lineName": "Line 1",
"status": 1,
"dateStart": "2017-08-03T15:10:20.42",
"dateEnd": "2017-08-03T15:10:23.353"
}, {
"lineId": 2,
"lineName": "Line 2",
"status": 2,
"dateStart": "2017-08-03T15:10:30.42",
"dateEnd": "2017-08-03T15:10:33.353"
}, {
"lineId": 3,
"lineName": "Line 3",
"status": 3,
"dateStart": "2017-08-03T15:10:40.42",
"dateEnd": "2017-08-03T15:10:43.353"
}, {
"lineId": 4,
"lineName": "Line 4",
"status": 4,
"dateStart": "2017-08-03T15:10:50.42",
"dateEnd": "2017-08-03T15:10:53.353"
}];
var container = document.getElementById('chart');
var chart = new google.visualization.Timeline(container);
var dataTable = new google.visualization.DataTable();
dataTable.addColumn({type: 'string', id: 'row'});
dataTable.addColumn({type: 'string', id: 'bar'});
dataTable.addColumn({type: 'date', id: 'start'});
dataTable.addColumn({type: 'date', id: 'end'});
for (var i = 0; i < jsonData.length; i++) {
dataTable.addRow(
[jsonData[i].lineName.toString(), jsonData[i].status.toString(), new Date(jsonData[i].dateStart), new Date(jsonData[i].dateEnd)]
);
}
chart.draw(dataTable);
}
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart"></div>