Javascript 更新系列颜色将显示为中断导航器和范围选择器

Javascript 更新系列颜色将显示为中断导航器和范围选择器,javascript,jquery,highcharts,highstock,Javascript,Jquery,Highcharts,Highstock,我们希望允许用户将该系列的颜色从单色渐变改为发散色。我们通过一个下拉菜单来实现这一点,我们捕获了他们的选择并进行如下更新(代码比演示更简单): 下面是一组实时数据,可以在中使用。 若要重新生成问题,请让图表加载,然后单击图例中的“数据趋势(%)”,使其在图表中可见。请注意,navigator系列已更改为此系列。现在,在下拉列表中将所选值更改为“多色”。请注意该系列的颜色是如何变化的,但是navigator系列数据也是如此。navigator有两个属性引用该系列。第一个是它自己的系列对象-更新它的

我们希望允许用户将该系列的颜色从单色渐变改为发散色。我们通过一个下拉菜单来实现这一点,我们捕获了他们的选择并进行如下更新(代码比演示更简单):

下面是一组实时数据,可以在中使用。
若要重新生成问题,请让图表加载,然后单击图例中的“数据趋势(%)”,使其在图表中可见。请注意,navigator系列已更改为此系列。现在,在下拉列表中将所选值更改为“多色”。请注意该系列的颜色是如何变化的,但是navigator系列数据也是如此。

navigator有两个属性引用该系列。第一个是它自己的系列对象-更新它的数据属性,第二个是baseSeries,它从图表中保留对主系列的引用。

如果将baseSeries设置为可见系列,它将按预期工作

            serie[i].show();
            var navigator = this.chart.get('nav');
            this.chart.scroller.baseSeries = this; // serie[i]
            navigator.setData(serie[i].options.data);
            this.chart.setTitle({
              text: serie[i].name
            });

示例:

好的,这似乎在第一次尝试时起作用。但是,当您单击到系列4,更改为多色,单击系列2,然后再次单击系列4时,它不再符合设置的缩放范围(从顶部的按钮或使用navigator系列缩放手柄)-它始终设置为查看所有X轴。如果您单击系列1,它将进行清理,并遵守导航器缩放设置。我减少了代码中的重画次数-似乎不再存在缩放问题:基本上在每个Legend上单击图表重画几次-隐藏、显示每个系列、设置标题、,setData-最好在所有更改完成后调用一次重画。确认,是的,这些都在我的主代码中。忘了清理我的房间了。非常感谢。
for (i = 0; i < this.series.length; i += 1) {
    if (this.series[i].name != 'Navigator') {
        if (this.series[i].visible) {
        console.log(this.series[i].name);
        var navigator = this.get('nav');
        navigator.setData(this.series[i].options.data);
        }
    }
}
            serie[i].show();
            var navigator = this.chart.get('nav');
            this.chart.scroller.baseSeries = this; // serie[i]
            navigator.setData(serie[i].options.data);
            this.chart.setTitle({
              text: serie[i].name
            });