xaxis usar tipos test node lineas grafica data con como javascript highcharts

javascript - usar - Cómo establecer un valor mínimo estático para los ejes en Highcharts



highcharts xaxis categories (2)

Me sorprende lo difícil que es esto. No es una solución óptima, pero es lo mejor que puedo soñar con la API de HighChart:

var someData = [1,5,82,9,300,5,42,199,5,6,99,1,56,52,250,64]; var chart = new Highcharts.Chart({ chart: { renderTo: ''container'' }, yAxis:{ min: -10, tickInterval: 1, labels: { formatter: function() { if (this.value < someData[0]) return null; else if (this.value == someData[0]) return this.value; else if (this.value % 50 == 0) return this.value; } } }, series: [{ data: someData }] });

Tengo datos basados ​​en el tiempo que van de 1 a 500. El tiempo se traza en el eje xy los valores están en el eje y.

Cuando el rango entre los puntos de datos mínimos y máximos es grande, la etiqueta de inicio del eje y es 0. Puedo decirle a Highcharts que no muestre la etiqueta estableciendo yAxis.startOnTick = false; pero eso no es realmente lo que estoy buscando.

Aquí hay una jsfiddle del problema donde no se puede decir si el primer punto es 0 o algún otro valor. Tener 0 aquí también parece que el rango mínimo para y es 0, no 1.

Puede Highcharts mostrar la primera etiqueta y la primera etiqueta siempre debe establecerse en el valor mínimo en el conjunto de datos (relativo a su eje).


Una solución (que optimiza la respuesta de Marks ) es usar yAxis.labels.formatter con this.isFirst y this.axis.dataMin , así:

yAxis:{ labels: { formatter: function() { if(this.isFirst) return this.axis.dataMin; return this.value; } } }

Vea esta demostración de JSFiddle para un ejemplo.

La ventaja de esto es que no tiene que configurar manualmente tickInterval , lo que ahorra muchas llamadas al formatter y deja que Highcharts determine los intervalos de etiqueta. Además, utiliza el conocimiento de los ejes del valor mínimo de los datos, en lugar de tener que comparar con una matriz (que puede tener que iterar para encontrar el mínimo).

Tenga en cuenta que yAxis.min debe establecerse en algo sensato aquí (funciona mejor con 0 y datos positivos). Si el eje y va muy por debajo del punto de datos mínimo, la primera etiqueta no será la que está en 0.

El valor this.axis no estaba disponible cuando se formuló esta pregunta.