Set axisY maximum to the maximum dataPoint Value in the range using rangeChanging - CanvasJS JavaScript Charts

Set axisY maximum to the maximum dataPoint Value in the range using rangeChanging - CanvasJS JavaScript Charts

by canvasjs

HTML

<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>
<br/><!-- Just so that JSFiddle's Result label doesn't overlap the Chart -->
<div id="chartContainer" style="height: 360px; width: 100%;"></div>

JavaScript

var chart = new CanvasJS.Chart("chartContainer", {
	rangeChanging: rangeChanging,
  zoomEnabled: true,
	data: [
	{
		type: "column",
		dataPoints: [
			{ x: 10, y: 71 },
			{ x: 20, y: 55 },
			{ x: 30, y: 50 },
			{ x: 40, y: 65 },
			{ x: 50, y: 95 },
			{ x: 60, y: 68 },
			{ x: 70, y: 28 },
			{ x: 80, y: 34 },
			{ x: 90, y: 14 }
		]
	}					
	]
});

chart.render();

function rangeChanging(e){
  var viewportMinimum = e.chart.axisX[0].viewportMinimum;
  var viewportMaximum = e.chart.axisX[0].viewportMaximum;
  var maxY = 0;
  for(var i = 0; i < e.chart.data.length; i++){
    for(var j = 0; j < e.chart.data[i].dataPoints.length; j++){

      if(e.chart.data[i].dataPoints[j].x >= viewportMinimum && e.chart.data[i].dataPoints[j].x <= viewportMaximum && e.chart.data[i].dataPoints[j].y > maxY){
        maxY = e.chart.data[i].dataPoints[j].y;        
      }
    }
  }
  if(!e.chart.options.axisY)
  	e.chart.options.axisY = {};
  e.chart.options.axisY.viewportMaximum = maxY;
}