我正在使用数据分析并尝试使用谷歌图表。
我尝试传递来自Google Analytics的响应以生成谷歌图表。
我成功实现了data.addColumn,但data.addRow给出了错误“给予addRows的参数必须是数字或数组”
function drawCharts(response)
{
var data = new google.visualization.DataTable();
header = response.columnHeaders[0];
data.addColumn('string', header.name);
for (var i = 0, header; header = response.columnHeaders[i]; i++){
data.addColumn('number', header.name);
}
var result = '';
for(var i=0; i<response.rows.length; i++) {
result += '["'+response.rows[i]+'"],';
}
result = result.substring(0, result.length - 1);
alert(result); //image attached
data.addRows(result);
var options = {'title':response.profileInfo.profileName,
'width':400,
'height':300};
// Instantiate and draw our chart, passing in some options.
var chart = new google.visualization.BarChart(document.getElementById('chart_div'));
chart.draw(data, options);
}
请帮助......!我已经尝试了几个小时...... !!
警报结果给了我这样的东西;
答案 0 :(得分:0)
为什么要从行中创建字符串? #addRows方法采用数组数组。
如果您只是致电data.addRows(response.rows);
会怎样?
此外,添加列的方法需要稍微调整,因为您要添加第一列两次。因为您已经将result.columnHeaders [0]拉入一列,所以在for
而不是i = 1
开始i = 0
循环。
header = response.columnHeaders[0];
data.addColumn('string', header.name);
for (var i = 1, header; header = response.columnHeaders[i]; i++){
data.addColumn('number', header.name);
}