高图表:如何免除重绘缩放计算序列



在这个jsfiddle中,每次切换序列的可见性时,图表都有很好的缩放效果。

但是当我添加上限序列时,这种效果会丢失,因为该序列具有最低和最高的 x 值。

如何使图表放大我选择的序列,并防止其他序列影响缩放边界?

{
    name: 'UpperLimit',
    color: '#FF0000',
    dashStyle: 'ShortDash',
    showInLegend: false,
    //affectsZoomBox: false, //No such thing :(
    data: [
        [1, 100], 
        [10, 100]
    ]
},

我认为使用该系列的配置是不可能的。但是,如果您愿意破解一点,则可以从轴极值的计算中排除一个或多个序列:

chart.xAxis[0].oldGetSeriesExtremes = chart.xAxis[0].getSeriesExtremes;
chart.xAxis[0].getSeriesExtremes = function() {
    var axis = this;
  var originalSeries = axis.series;
    var series = [];
  for (var i = 0; i < originalSeries.length; i++) {
    // Filter out the series you don't want to include in the calculation
    if (originalSeries[i].name != 'UpperLimit') {
        series.push(originalSeries[i]);    
    }
  }
    axis.series = series;
  axis.oldGetSeriesExtremes();
  axis.series = originalSeries;
}

该代码演示如何覆盖轴对象上的getSeriesExtremes函数。该方法将替换为一个包装器,该包装器删除应排除的序列,然后调用原始函数,然后将原始系列还原到轴。

这显然是一个黑客。但是,它可以在我的机器上运行...

最新更新