Highcharts - set maximum range for yAxis but keep axis dynamic within that range
It seems that there is no maxRange
equivalent (feature request, Torstein?) so that the axis maximum has to be determined before Highcharts is called. Building upon Sanath's suggestion a solution would be this:
$(function () {
var setA = [29.9, 11.5, 36.4, 19.2, 4.0, 46.0, 48.2, 15.2, 16.4, 4.1, 5.6, 44.4];
var setB = [129.2, 144.0, 176.0, 135.6, 248.5, 316.4, 694.1, 795.6, 954.4, 1029.9, 1171.5, 1506.4];
var data = Math.random() < 0.5 ? setA : setB;
var height=Math.max.apply(Math, data);
if(height > 1000){ height = 1000; }
$('#container').highcharts({
chart: {
marginRight: 80 // like left
},
xAxis: {
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
},
yAxis: [{
lineWidth: 1,
max: height,
min: 0,
title: { text: 'yAxis' }
}],
series: [{
data: data
}]
});
});
As working example: http://jsfiddle.net/PanicJ/H2pyC/8/
please use setExtremes to define a range. The JSfiddle has been updated.
$('#button').click(function () {
var chart = $('#container').highcharts(
);
if ($(this).hasClass('big')) {
$(this).removeClass('big');
chart.series[0].setData([29.9, 11.5, 36.4, 19.2, 4.0, 46.0, 48.2, 15.2, 16.4, 4.1, 5.6, 44.4]);
//chart.setSize(null,100,true);
chart.yAxis[0].setExtremes(0,50);
} else {
$(this).addClass('big');
chart.series[0].setData([129.2, 144.0, 176.0, 135.6, 248.5, 316.4, 694.1, 795.6, 954.4, 1029.9, 1171.5, 1506.4]);
//chart.setSize(null,1600,true);
chart.yAxis[0].setExtremes(0,1600);
}
});
});