如何使用 for 循环将行动态添加到 Google 图表

How To dynamically Add row To Google Chart with for loop

我在 Google 图表中遇到问题。

我正在使用 asp.net Mvc。从控制器获取数据后,我将其传递到 Google 图表。

当我使用手动数据时,例如:

['Month', 'Bolivia', 'Ecuador', 'Madagascar', 'Papua New Guinea', 'Rwanda', 'Average'],
['2004/05',  165,      938,         522,             998,           450,      614.6],

它正确地显示了我。

但是如何将我的数据动态添加到 Google 图表中?

这是我的代码:

for (var i = 0; i < chartsdata.length; i++) {

    var data = google.visualization.arrayToDataTable([
        ['Element', 'Density', {role: 'style'}],
        [chartsdata[i].MonthValue, chartsdata[i].CountValue, '#b87333']
    ]);

    var options = {
        title: ''
    };

    var chart = new google.visualization.ComboChart(document.getElementById('chartdiv'));
    chart.draw(data, options);
}

您的做法是 wrong.You 应该执行如下操作:

 var data=[];
 var Header= ['Element', 'Density', { role: 'style' }];
 data.push(Header);
 for (var i = 0; i < chartsdata.length; i++) {
      var temp=[];
      temp.push(chartsdata[i].MonthValue);
      temp.push(chartsdata[i].CountValue);

      data.push(temp);
  }
var chartdata = new google.visualization.arrayToDataTable(data);

您可以使用“google.visualization.DataTable()”及其“addRow()Google code

var data = new google.visualization.DataTable();
data.addColumn('string', 'Month');
data.addColumn('number', 'Count');

for (var i = 0; i < chartsdata.length; i++) {
     data.addRow([chartsdata[i].month, chartsdata[i].count]);
}

为我解决了:

var data=[];

var Header= ['Element', 'Density', { role: 'style' }];

data.push(Header);

for (var i = 0; i < chartsdata.length; i++) {

      var temp=[];
      temp.push(chartsdata[i].MonthValue);
      temp.push(chartsdata[i].CountValue);
      temp.push("red"); //this will change based on value of 'i' variable
      data.push(temp);
  }

var chartdata = new google.visualization.arrayToDataTable(data);