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.
如您所知,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.