Highcharts:如何免除重绘缩放计算系列?

时间:2016-05-24 11:37:00

标签: javascript highcharts

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

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

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

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

1 个答案:

答案 0 :(得分:3)

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

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函数。该方法将替换为一个包装器,该包装器将删除应排除的系列,然后调用原始函数,然后将原始系列恢复到轴。

这显然是一个黑客攻击。但是,它适用于我的机器...