如何在data.addRows()中动态插入谷歌分析数据?

时间:2013-09-03 14:17:07

标签: javascript jquery google-analytics google-visualization

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

我尝试传递来自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);

      }

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

警报结果给了我这样的东西; enter image description here

1 个答案:

答案 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);
}