如何通过比较高图中的双y轴来获得最大值



我有一个带有双y轴的图表,如何从两者中获得最小值和最大值?

load: function () {
var series = this.series,
max = series[0].dataMax,
min = series[0].dataMin;
series.forEach(function (serie) {
if (serie.dataMax > max) {
max = serie.dataMax;
}
if (serie.dataMin < min) {
min = serie.dataMin;
}
});
this.yAxis[0].update({
min: min,
max: max
});

我正在尝试上面的方法,但它只会得到一侧的最大值并更新轴值。

如何使两个y轴使用相同的最大值?

从轴获取最小值/最大值,请使用返回ExtremesObjectgetExtremesExtremesObject具有以下属性:

dataMax,dataMin,max,min,userMax,userMin

如果您想设置一个新的最小/最大值,您应该使用setExtremes

setExtremes(〔newMin〕〔,newMax〕〔,rewrap〕〔,animation〕〔,eventArguments〕(

设定渲染时间后轴的最小值和最大值。如果startOnTick和endOnTick选项为true,则最小值和最大值将四舍五入到最接近的刻度。为了防止这种情况,可以在调用setExtremes之前将这些选项设置为false。此外,setExtremes将不允许低于minRange选项的范围,默认情况下,minRange选项是五个点的范围。

因此,从两个轴获得最小值和最大值,您可以对最小值做这样的操作(如果您想根据数据调整视图,而不是手动设置极值(:

let firstAxisExtremes = chart.yAxis[0].getExtremes(),
secondAxisExtremes = chart.yAxis[1].getExtremes(),
min, max;
if(firstAxisExtremes.dataMin <= secondAxisExtremes.dataMin) {
min = firstAxisExtremes.dataMin
} else {
min = secondAxisExtremes.dataMin
}

API参考:getExtremessetExtremesExtremesObject

此外,您可以使用当前代码并设置yAxis.linkedTo属性:

。。。

当一个轴链接到主轴时,它将采用相同的极值作为主,但由min或max或setExtremes。(…(

yAxis: [{}, {
linkedTo: 0,
opposite: true
}]

现场演示:http://jsfiddle.net/BlackLabel/n5bzrqs8/

API:https://api.highcharts.com/highcharts/yAxis.linkedTo

最新更新