Highcharts(highstock)无论如何检测系列中的最大值

Highcharts (highstock) anyway to detect maximum value in a series

如您所知,Highcharts 会自动计算 yAxis 的最大值和最小值,除非您专门设置 yAxis: { min: 0, max: 100} 之类的内容。

但是在我的例子中,我并不总是确定我的数据的最大值是多少,我想将 yAxis.max 设置为我加载的数据集中最大的任何值。

我现在想到的解决方法是从后端导出 yMax,然后在前端使用 setExtremes(0, yMax) 来实现。但是鉴于highchart的高性能和自动魔术的特性,是否可以仅从前端完成此操作?

谢谢大家!

这可以通过扫描 events.load 中的数据来完成:

events: {
    load: function () {
        var points = []
        this.series.forEach(function (entry) {
            entry.data.forEach(function (theData) {
                points.push(theData.y);
            });
        });
        this.yAxis[0].update({
            max: Math.max.apply(Math, points)
        });
    }
}

这是一种非常冗长的方法,您可能会破坏一些逻辑。此外,您还需要确保有数据可供检查。

直播demo.