Как получить максимальное значение, сравнивая двойную ось Y в старшей диаграмме? - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть диаграмма с двойной осью 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 использовали одно и то же максимальное значение?

Ответы [ 2 ]

0 голосов
/ 19 ноября 2018

Также вы можете использовать свой текущий код и установить yAxis.linkedTo свойство:

...

Когда ось связана с главной осью, она будет крайности как мастер, но как назначено мин или макс или setExtremes. (...)

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

Демонстрация в реальном времени: http://jsfiddle.net/BlackLabel/n5bzrqs8/

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

0 голосов
/ 13 ноября 2018

Чтобы получить мин / макс значения от оси, используйте getExtremes, которая возвращает ExtremesObject. ExtremesObject имеет следующие свойства:

dataMax, dataMin, max, min, userMax, userMin

Если вы хотите установить новое минимальное / максимальное значение, вы должны использовать setExtremes

setExtremes ([newMin] [, newMax] [, перерисовать] [, анимация] [, eventArguments])

Установите минимум и максимум осей после времени рендеринга. Если параметры startOnTick и endOnTick имеют значение true, минимальное и максимальное значения округляются до ближайшего тика. Чтобы предотвратить это, эти параметры могут быть установлены в false перед вызовом setExtremes. Кроме того, setExtremes не позволит диапазон ниже, чем параметр 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 ссылки: getExtremes, setExtremes, ExtremesObject

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...