Applying extremes

by kzoon

HTML

<script src="https://code.highcharts.com/highcharts.js"></script>

<div id="container" style="height: 500px"></div>
<button id="button" class="autocompare">Apply Y axis extremes</button>

JavaScript

const chart = Highcharts.chart('container', {
  chart: {
    type: 'line',
    zoomType: 'y'
  },
  yAxis: {
    max: 295,
    events: {
      afterSetExtremes: doAfterSetExtremes
    }
  },

  xAxis: {
    categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
  },
  series: [{
    data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
  }]
});

var lbl;
const userMax = 226.82926829268294;
const userMin = 53.65853658536585;

function doAfterSetExtremes(e) {

  if (lbl) {
    lbl.destroy();
  }


  lbl = chart.renderer.label(
      'dataMax: ' + e.dataMax + '<br/>' +
      'dataMin: ' + e.dataMin + '<br/>' +
      'max: ' + e.max + '<br/>' +
      'min: ' + e.min + '<br/>' +
      'userMax: ' + e.userMax + '<br/>' +
      'userMin: ' + e.userMin + '<br/>',
      100,
      100
    )
    .attr({
      fill: '#FCFFC5',
      zIndex: 8
    })
    .add();

}


document.getElementById('button').addEventListener('click', e => {
  chart.yAxis[0].setExtremes(userMin, userMax);
  if (!chart.resetZoomButton) {
    chart.showResetZoom();
  }

});