问题描述
我在使用 Highcharts 时遇到问题。我需要按按钮对系列进行排序,然后使用新的数据数组重新绘制图表。新系列有正确的排序
const sortedSeries = [...series].sort(function (a,b)...
但是当我尝试更新图表时:
chart.update({ series: sortedSeries }
他们使用正确的排序重绘但系列内的数据不正确。你能帮忙吗? 非常感谢。
解决方法
数据不正确,因为 Highcharts 出于性能原因对原始数据进行了变异。您可以使用全新的系列数组更新图表:https://jsfiddle.net/BlackLabel/2rvctqpz/
或仅更改系列索引:https://jsfiddle.net/BlackLabel/f94gocds/
$('#button').click(function() {
const sortedSeries = series.sort(function(a,b) {
if (a.generic < b.generic)
return -1;
if (a.generic > b.generic)
return 1;
return 0;
});
chart.series.forEach(function(s) {
const seriesRef = sortedSeries.find(function(sortedS) {
return sortedS.generic === s.options.generic;
});
s.update({
index: sortedSeries.indexOf(seriesRef)
},false);
});
chart.redraw();
});
API 参考: https://api.highcharts.com/highcharts/series.scatter.index