Agregando a Julian D's very good answer, lo siguiente evita un posible problema de reposicionamiento si el máximo calculado varía en número de dígitos a su límite superior deseado.
En mi caso, tenía datos de porcentaje actualmente en los 20, pero quería un rango de 0 a 100, con la posibilidad de ir a más de 100 si fuera necesario, entonces los siguientes conjuntos min & máximo en el código, luego si dataMax resulta ser más alto, reasigna máximo hasta su valor. Esto significa que el posicionamiento gráfico siempre se calcula con suficiente espacio para valores de 3 dígitos, en lugar de calcularse para 2 dígitos, luego se rompe apretando "100", pero permite hasta "999" antes de que haya un problema.
var chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
events: {
load: function(event) {
thisSetMax = this.yAxis[0].getExtremes().max;
thisDataMax = this.yAxis[0].getExtremes().dataMax;
if (thisDataMax > thisSetMax) {
this.yAxis[0].setExtremes(0, thisDataMax);
alert('Resizing Max from ' + thisSetMax + ' to ' + thisDataMax);
}
}
}
},
title: {
text: 'My Graph'
},
xAxis: {
categories: ['Jan 2013', 'Feb 2013', 'Mar 2013', 'Apr 2013', 'May 2013', 'Jun 2013']
},
yAxis: {
min: 0,
max: 100,
title: {
text: '% Due Tasks Done'
}
}
//Etc...
});
Usted puede evitar el parpadeo volver a dibujar mediante el establecimiento de la al evento 'load' de la tabla:' nueva Highcharts.Chart ({ gráfico: { eventos: { carga: function (event) {if (this.yAxis [0 ] .getExtremes(). dataMax <10) { this.yAxis [0] .setExtremes (0, 10); }}}, ...}, ...}); ' –
Lástima que no haya una forma de hacer esto más limpiamente. Tal vez bifurque el repositorio y lo arregle si obtengo unos minutos. –
ver la respuesta de Ondkloss –