[英]How to get max value by comparing dual y-axis in highchart?
我有一個帶有雙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軸使用相同的最大值?
要從軸獲取最小值/最大值,請使用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
}
API參考: getExtremes
, setExtremes
, ExtremesObject
另外,您可以使用當前代碼並設置yAxis.linkedTo
屬性:
...
當軸鏈接到主動軸時,它將具有與主動軸相同的極限,但是由最小值或最大值或setExtremes分配。 (......)
yAxis: [{}, {
linkedTo: 0,
opposite: true
}]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.