Highcharts 排序系列数据并重绘

问题描述

我在使用 Highcharts 时遇到问题。我需要按按钮对系列进行排序,然后使用新的数据数组重新绘制图表。新系列有正确的排序

const sortedSeries = [...series].sort(function (a,b)...

但是当我尝试更新图表时:

chart.update({ series: sortedSeries }

他们使用正确的排序重绘但系列内的数据不正确。你能帮忙吗? 非常感谢。

我的代码here 中,请检查。

解决方法

数据不正确,因为 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