Highcharts - 在Y轴上以负值保持零中心

mac*_*erv 13 highcharts

我有一个负值的面积图.没有什么能与他们给出的例子完全不同,但有一个转折点:我想保持零在Y轴上居中.

我知道这可以通过设置来实现yAxis.max一些值ÑyAxis.min-n,与Ñ代表的绝对值或者图表或波谷中较大的峰值(如在此小提琴).但是,我的数据是动态的,所以我不知道n需要什么.

我对Highcharts相对较新,所以我可能错过了通过配置来实现这一目标的方法,并让Highcharts为我处理它,但看起来我需要使用Javascript手动调整y轴当页面加载时,以及新数据进入时.

是否有一种简单的,配置驱动的方式来保持零点以Y轴为中心?

mac*_*erv 20

在深入挖掘Highcharts API后,我最终找到了通过配置实现此目的的方法.每个轴都有一个配置选项,tickPositioner为您提供一个返回数组的函数.此数组包含您希望刻度线出现在轴上的确切值.这是我的新tickPositioner配置,它在我的Y轴上放置了五个刻度,零中间整齐,两个极端最大:

yAxis: {

    tickPositioner: function () {

        var maxDeviation = Math.ceil(Math.max(Math.abs(this.dataMax), Math.abs(this.dataMin)));
        var halfMaxDeviation = Math.ceil(maxDeviation / 2);

        return [-maxDeviation, -halfMaxDeviation, 0, halfMaxDeviation, maxDeviation];
    },

    ...
}
Run Code Online (Sandbox Code Playgroud)