plotoptions - highcharts series options
Establezca el valor mÃnimo de highcharts y y axis en 0, a menos que haya datos negativos (5)
Estoy teniendo un problema con los gráficos altos en los que tengo una serie de gráficos diferentes generados por las llamadas JSON.
Para la mayoría de estos gráficos, necesito que el valor mínimo del eje y se establezca en 0, sin embargo, hay un par de ocasiones en las que se deben mostrar valores negativos. ¿Cómo puedo decirle a Highcharts que tenga un valor mínimo de eje y de 0 solo si no hay valores negativos en los datos? ¿Es esto posible?
Gracias
La opción que está buscando se llama softMin
y se introdujo en la versión 5.0.1 . Los documentos lo describen de la siguiente manera:
Un mínimo suave para el eje. Si el mínimo de datos de la serie es mayor que esto, el eje permanecerá en este mínimo, pero si el mínimo de los datos de la serie es menor, el eje se flexionará para mostrar todos los datos.
yAxis: {
softMin: 0
}
Puede configurar el "piso", esto define el valor mínimo posible para min. Cuando se agregan valores negativos, no serán visibles! ( http://api.highcharts.com/highcharts/xAxis.floor )
yAxis: {
floor: 0
}
Sé que esta pregunta se hizo hace mucho tiempo y esta propiedad no existía en ese momento. Pero acabo de encontrar este problema y creo que los demás estarán felices de no tener que buscar.
Puede preparar su propia función, ya que la verificación es negativa o no, luego establezca las marcas apropiadas. Para lograr esto, debe usar tickPositioner http://api.highcharts.com/highcharts#yAxis.tickPositioner
Puedes añadir a tu eje y:
yAxis: {
title: {
text: ''Title of the y-axis''
},
min: 0 // this sets minimum values of y to 0
},
setExtremes esto creando una función usando setExtremes
var setMin = function () {
var chart = this,
ex = chart.yAxis[0].getExtremes();
// Sets the min value for the chart
var minVal = 0;
if (ex.dataMin < 0) {
minVal = ex.dataMin;
}
//set the min and return the values
chart.yAxis[0].setExtremes(minVal, null, true, false);
}
Luego en tu carta, lo llamas así:
$(''#container'').highcharts({
chart: {
events: {
load: setMin
}
},
});