我有一个具有双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轴使用相同的最大值?
答案 0 :(得分:0)
要从轴上获取最小/最大值,请使用getExtremes
,它返回一个ExtremesObject
。 ExtremesObject
具有以下属性:
dataMax,dataMin,max,min,userMax,userMin
如果要设置新的最小/最大值,则应使用setExtremes
setExtremes([newMin] [,newMax] [,重绘] [,动画] [,eventArguments])
设置渲染时间之后的最小和最大轴。如果startOnTick和endOnTick选项为true,则将最小值和最大值四舍五入到最接近的刻度。为避免这种情况,可以在调用setExtremes之前将这些选项设置为false。另外,setExtremes不允许的范围小于minRange选项,该范围默认为5个点。
因此,要从两个轴获取最小值和最大值,可以对最小值进行如下操作(如果要根据数据调整视图而不是手动设置极限值):
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
}
答案 1 :(得分:0)
此外,您可以使用当前代码并设置yAxis.linkedTo
属性:
...
将轴链接到主动轴时,将采用相同的轴。 极端作为主节点,但由最小或最大或按 setExtremes。 (...)
yAxis: [{}, {
linkedTo: 0,
opposite: true
}]