我有一个圆环图,每次我在下拉菜单中选择不同的选项时,我都想用新的数据集更新它,但由于我的代码是在draw()
函数中,所以图表总是试图一遍又一遍地绘制自己,这就是为什么我一直收到错误消息的原因:Canvas is already in use. Chart with ID '0' must be destroyed before the canvas with ID 'myChart' can be reused.
个
我该如何解决这个问题呢?名为stats
的变量是我试图用来更新图表数据的变量。
var config = {
type: 'doughnut',
data: {
labels: legend,
datasets: [{
backgroundColor: ['rgb(204,0,0)', 'rgb(241,194,50)', 'rgb(41,134,204)', 'rgb(106,168,79)', 'rgb(255,62,153)'],
data: stats,
}]
},
plugins: [hoverLabel],
options: {
radius: this.radius,
hoverOffset: 30,
responsive: true,
maintainAspectRatio: false,
plugins: {
title: {
display: true,
text: "Top 5 causes of death in " + country,
color: 'rgb(0,0,0)',
align: 'center',
padding: 15,
font: {
size: 25
}
},
legend: {
position: 'right',
title: {
display: true,
color: 'rgb(0,0,0)',
text: 'Legend',
font: {
weight: 'bold',
size: 20
},
},
labels: {
color: 'rgb(0,0,0)',
usePointStyle: true,
padding: 15,
font: {
size: 15,
weight: 'bold'
}
}
}
}
}
};
let mychart = new Chart('myChart', config);
1条答案
按热度按时间bd1hkmkf1#
您有两个选项,一个是通过先销毁图表来完全重新创建图表:
或通过更新当前图表示例: