lineal - highcharts php
Cómo formatear Highcharts dataLabels puntos decimales (4)
¿Puede por favor ver este ejemplo y saber cómo puedo formatear los dataLabels para que se muestren solo con dos números decimales?
Aquí está el número de formatos que tengo en la serie.
series: [{
name: ''Tokyo'',
data: [7.554555, 6.34345559, 9.5555, 14.5555, 18.4333433, 21.5555, 25.2, 26.5333333, 23.33333, 18.23243543, 13.776565669, 9.65454656]
}, {
name: ''London'',
data: [3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8]
}]
y me gustaría presentarlos como 7.55, 6.34, 9.55. Gracias
En caso de que alguien quiera ir "más allá", muestro datos que pueden ser de 10 ^ 1 a 10 ^ 9, por lo que los convierto y luego muestro la unidad.
Recuerde, Highcarts solo trata con números enteros, por lo tanto, si desea agregar unidades (y no en el YAxis debido a las múltiples unidades), puede ingresarlo en los datos de origen, pero luego debe formatearlos:
column: {
dataLabels: {
enabled: true,
formatter: function () {
// Display only values greater than 0.
// In other words, the 0 will never be displayed.
if (this.y > 0) {
if (this.y >= Math.pow(10, 9))
{
return Highcharts.numberFormat(this.y /Math.pow(10, 9) , 1) + " mias";
}
else if (this.y >= Math.pow(10, 6))
{
return Highcharts.numberFormat(this.y /Math.pow(10, 6) , 1) + " mios";
}
else
{
return Highcharts.numberFormat(this.y, 0);
}
}
},
mias: significa "milliards" (traducción al francés de billar) mios: significa "millones" (traducción al francés de millones)
Noté en los comentarios que querías no mostrar ceros finales .
Esta fue la solución más simple que pude reunir:
...
dataLabels: {
enabled: true,
formatter: function () {
return parseFloat(this.y.toFixed(2)).toLocaleString();
}
}
...
Si no desea que el número termine con un separador de coma (según la configuración regional), elimine el .toLocaleString ().
Nota de inicio: Desafortunadamente, el uso de formato (en lugar de formateador y una función js como lo hacemos anteriormente) se limita a un subconjunto de convenciones de formato flotante de la función de biblioteca de C sprintf, como se indica aquí en el sitio web de highcharts . Esa biblioteca tiene el código g que haría esto automáticamente por nosotros, pero desafortunadamente no está implementado en Highcharts :(, es decir, el formato: ''{point.y:,. 2g}'' no funciona.
Simplemente agregaría la opción de formato a las etiquetas de datos de la siguiente manera:
dataLabels: {
enabled: true,
format: ''{point.y:,.2f}''
}
Es la forma más sencilla de hacerlo sin tener que definir una función utilizando el formateador.
extra:
La coma después de los dos puntos asegura que un número como 1450.33333 se muestre como 1.450.33, lo que también es bueno.
dataLabels
combinar el formatter Highcharts.numberFormat y Highcharts.numberFormat :
...
dataLabels: {
enabled: true,
formatter: function () {
return Highcharts.numberFormat(this.y,2);
}
}
...
Ver jsFiddle