我目前正在尝试使用Google图表生成折线图。 所以我需要生成一个动态的日期数组和下面给出的值
data.addColumn('date', 'Time of Day');
data.addColumn('number', 'Rating');
data.addRows([
[new Date(2015, 0, 1),5], [new Date(2015, 0, 2), 7], [new Date(2015, 0, 3), 3]
]);
我尝试创建一个数组
[[new Date(2015,0,1),5],[new Date(2015,0,2),7],[new 日期(2015年,0,3),3]]
for(var i=1; i<=10 ;i++){
var last = new Date(date.getTime() - (i * 24 * 60 * 60 * 1000));
var day =last.getDate();
var month=last.getMonth()+1;
var year=last.getFullYear();
row[i]=[]
row[i][0] = new Date(year,month,day);
row[i][1]=5;
}
data.addRows(row);
在fireBug中显示和错误
给定的每一行必须为null或数组。
抱歉,我是JS的新手。请帮我做。生成数组或其他任何问题都有问题吗?
答案 0 :(得分:4)
而不是使用addRows
,请使用addRow
然后直接提供数组
data.addRow([new Date(year,month,day), i]);
参见以下示例......
google.charts.load('current', {
callback: function () {
// create data table
var data = new google.visualization.DataTable();
data.addColumn('date', 'Time of Day');
data.addColumn('number', 'Rating');
// load data table
var date = new Date();
for (var i=1; i<=10; i++) {
var last = new Date(date.getTime() - (i * 24 * 60 * 60 * 1000));
var day = last.getDate();
var month = last.getMonth()+1;
var year = last.getFullYear();
data.addRow([new Date(year,month,day), i]);
}
var chart = new google.visualization.BarChart(document.getElementById('barChart'));
chart.draw(data, {
title: 'My Bar chart',
is3D: 'true'
});
},
packages: ['corechart']
});
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="barChart"></div>