如何将数据添加到饼图Javascript

问题描述 投票:0回答:2

我试图在饼图中显示每个所有者的宠物百分比,如何将数据推送到饼图? for循环不断得到一个SyntaxError:意外的令牌变量。这是我的代码。

window.onload = function() {
var count = "<?php echo($i)?>";
var name = [];
var per = [];
var j = -1;

var chart = new CanvasJS.Chart("chartContainer", {
animationEnabled: true,
title: {
    text: "TB_PET"
},
data: [{
    type: "pie",
    startAngle: 240,
    yValueFormatString: "##0.00\"%\"",
    indexLabel: "{label} {y}",

Error here-->for(var i = 0; i < count; i++){
 name[i] = document.getElementById(i).value;
 per[j] = document.getElementById(j).value;

dataPoints: [
{y: per[j], label: name[i]}
]

  j--;
  }

  }]
  });
  chart.render();

  }
javascript pie-chart
2个回答
1
投票

您不能在作为参数传递给函数调用的对象文字(图表的配置)内进行迭代。

new CanvasJS.Chart(...)调用之前迭代数据,并将变量作为配置对象的一部分传递。

在这里迭代

var dataPoints = []; 
for(...){
  dataPoints.push(..);
]

然后传递数据点如下

var chart = new CanvasJS.Chart("chartContainer", {
  animationEnabled: true,
  title: {
    text: "TB_PET"
  },
  data: [
    {
      type: "pie",
      startAngle: 240,
      yValueFormatString: '##0.00"%"',
      indexLabel: "{label} {y}",
      dataPoints: dataPoints

    }
  ]
});
chart.render();

0
投票

注意:如果我的代表更高,这将是一个评论

我不熟悉php返回,但我首先要先将'count'变量手动更改为实际数字,然后才能继续前进。看来你的for循环正在将'count'变量作为一个字符串进行评估,然后抛出你看到的错误。

https://airbrake.io/blog/javascript-error-handling/unexpected-token

© www.soinside.com 2019 - 2024. All rights reserved.