0

我正在使用数据分析并尝试使用谷歌图表。

我尝试通过谷歌分析的响应来生成谷歌图表。

我成功实现了 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);

      }

请帮忙....!我已经尝试了几个小时......!

警报结果给了我这样的东西; 在此处输入图像描述

4

1 回答 1

0

你为什么要从行中创建一个字符串?#addRows 方法接受一个数组数组。

如果你只是打电话会发生什么data.addRows(response.rows);

此外,您添加列的方法需要稍微调整一下,因为您要添加第一列两次。开始for循环i = 1而不是i = 0,因为您已经将 result.columnHeaders[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);
}
于 2013-09-03T14:37:26.637 回答