簡體   English   中英

如何通過在高圖中比較雙y軸來獲得最大值?

[英]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參考: getExtremessetExtremesExtremesObject

另外,您可以使用當前代碼並設置yAxis.linkedTo屬性:

...

當軸鏈接到主動軸時,它將具有與主動軸相同的極限,但是由最小值或最大值或setExtremes分配。 (......)

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

現場演示: http : //jsfiddle.net/BlackLabel/n5bzrqs8/

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM