D3.js & nvd3.js Eje y etiqueta Formato de precisión
Pregunta
utilizando la tabla de área apilada como se ve en este ejemplo http://nvd3.com/ghpages/stackedarea.html
Tratando de formatear las etiquetas de garrapatas de eje y y las etiquetas de la información sobre herramientas para ser enteros en lugar de flotadores.Intentado cambiar el código de seguimiento de
chart.yAxis
.axisLabel('Users')
.tickFormat(d3.format(',.2f'));
a
chart.yAxis
.axisLabel('Users')
.tickFormat(d3.format(',.0d'));
La precisión permanece sin cambios (aún muestra valores a los centésimos lugar).He seguido el GitHub Wiki a no disponible https://github.com/mbostock/d3/wiki/Formato # wiki-d3_format
Cualquier sugerencia o sugerencia será muy apreciada.
Solución
se parece a Esto no es compatible con NVD3 en este momento. Consulte la ofensor line .
Además, su especificación de formato no es correcta. Como se mencionó en la documentación, "d"
ignora los valores no enteros. Así que probablemente desee ",.0f"
en su lugar, lo que significa:
-
,
: usa comas para separar miles. -
.0
: precisión de cero (el significado exacto de esto depende de lo que tipo está en uso). -
f
: el tipo ; En este caso, number.tofixed . Esto significa que aparecen un número fijo de dígitos (la precisión ) después del punto decimal, y el número se redondea si es necesario.
Otros consejos
Este puede formatear texto de etiqueta de flotador a entero.
para gráfico circular:
chart.pie.valueFormat(d3.format(',.0d'));
para la línea de línea:
chart.yAxisTickFormat(d3.format(',.0d'));
El método .tickFormat
en el método .yAxis
no lo actualiza correctamente.Este es el trabajo que usé:
chart.yAxisTickFormat(d3.format(',.0d'));
He intentado así
.axisLabel('%').tickFormat(function(d) { return parseFloat(d).toFixed(1) + "%"; });
está funcionando para mí. Estoy obteniendo resultados con puntos decimales y porcentaje.