gpt4 book ai didi

javascript - 如何将系列传递给 Highcharts 中的绘图选项

转载 作者:行者123 更新时间:2023-12-03 06:22:46 25 4
gpt4 key购买 nike

我正在尝试更新“饼图”类型图表的系列数据选项:

我使用导出按钮来显示更改图表类型的选项,所有其他图表类型都运行良好,除了需要不同格式的系列数据的饼图。

exporting: {
buttons: {
lineButton: {
text: 'line',
onclick: function () {
for(i=0;i<this.series.length;i++) {
this.series[i].update({
type: "line"
});
}
}
},
barButton: {
text: 'bar',
onclick: function () {
for(i=0;i<this.series.length;i++) {
this.series[i].update({
type: "column"
});
}
}
},
pieButton: {
text: 'pie',
onclick: function () {
var pieSeries = [];

$.each(category_totals, function(j, k) {
pieSeries.push( { name: j , y: k } );
});

for(i=0;i<this.series.length;i++) {
this.series[i].remove();
}

this.series = [{
name: title,
colorByPoint: true,
data: pieSeries
}];

this.series[0].update({
type: "pie"
});
}
}
}
...

我收到此错误:Uncaught TypeError: this.series[0].update is not a function

最佳答案

问题是您按顺序从图表中删除系列,每次调用后都会重新绘制图表,并且在 for 循环结束时图表没有任何系列。当你这样做时

this.series = [{
name: title,
colorByPoint: true,
data: pieSeries
}]

您正在修改 javascript 对象,因此当您尝试执行此操作时,update 方法不可用

this.series[0].update({
type: "pie"
});

因为您尝试在通用 JavaScript 对象上调用 Highcharts 方法。你应该做的是

this.addSeries({
name: title,
colorByPoint: true,
data: pieSeries,
type: 'pie'
})

另外,一个建议:将参数 false 传递给 remove 方法,这样它就不会每次都重新绘制。添加新系列时只需重新绘制即可。所以上面的调用看起来像

this.addSeries({
name: title,
colorByPoint: true,
data: pieSeries,
type: 'pie'
}, true)

关于javascript - 如何将系列传递给 Highcharts 中的绘图选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38792518/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com