setdata plotoptions guideline dynamically data array highcharts axis default-value minimum

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 }

http://api.highcharts.com/highcharts/yAxis.softMin


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.



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 } }, });