通过动态数据绘制Google个饼图

Drawing Google pie by dynamic data

我正在尝试通过使用 JavaScript 创建动态 table 来绘制一个简单的 Google 饼图。

为什么我的代码失败了?

var g;
for (g=0; g <3; g++) {      
    var data = new google.visualization.DataTable();
    data.addColumn('string', 'Task');
    data.addColumn('number', 'Failed');
    data.addColumn('number', 'Passed');
    data.addRows(1);
    data.setCell(0, 0, "Work?");
    data.setCell(0, 1, 80);
    data.setCell(0, 2, 20);
    var chartName = 'piechart'+(g+1);  
    var chart = new google.visualization.PieChart(document.getElementById(chartName));   
    chart.draw(data,options);
}

我的屏幕上正在绘制 3 个饼图,但它们都是一种颜色和一个切片,而不是像我的代码中那样是 20% 80%。

此外,我的控制台上没有任何错误。

你的目标是这样的吗? 另外,如果可以,请考虑使用 addRows 而不是 setCell

我认为问题出在您的 table / 数据结构上。

<script src="https://www.gstatic.com/charts/loader.js"></script>

<div id="piechart1"></div>
<div id="piechart2"></div>
<div id="piechart3"></div>

<script>
  // Load the Visualization API and the corechart package.
  google.charts.load('current', {
    'packages': ['corechart']
  });

  // Set a callback to run when the Google Visualization API is loaded.
  google.charts.setOnLoadCallback(drawChart);

  function drawChart() {
    var g;
    for (g = 0; g < 3; g++) {
      var data = new google.visualization.DataTable();
      data.addColumn('string', 'PassOrfail');
      data.addColumn('number', 'Percentage');

      data.addRows([
      ['Passed', 80],
      ['Failed', 20],
      ]);
      var chartName = 'piechart' + (g + 1);
      var chart = new google.visualization.PieChart(document.getElementById(chartName));
      chart.draw(data);
    }
  }
</script>