d3.js & nvd3.js axe d'étiquette et de la précision de mise en forme
Question
Utilisez le graphique en aires empilées comme on le voit dans cet exemple http://nvd3.com/ghpages/stackedArea.html
Essayant de formater l'axe des étiquettes de graduation et de l'info-bulle des étiquettes à être des entiers au lieu de flotteurs.Essayé de changer le code ci-dessous à partir de
chart.yAxis
.axisLabel('Users')
.tickFormat(d3.format(',.2f'));
pour
chart.yAxis
.axisLabel('Users')
.tickFormat(d3.format(',.0d'));
La précision reste inchangée (affiche toujours les valeurs de la centième place).J'ai suivi le Wiki Github en vain https://github.com/mbostock/d3/wiki/Formatting#wiki-d3_format
Des suggestions ou des conseils seront grandement appréciés.
La solution
Ressemble ce n'est pas pris en charge par nvd3 à l'heure actuelle.Voir le fautif ligne.
En outre, vos spécifications de format n'est pas tout à fait droit.Comme mentionné dans la documentation, "d"
ignore les valeurs non entières.Donc, vous voulez probablement ",.0f"
au lieu de cela, ce qui signifie:
,
:utilisez des virgules pour séparer les milliers..0
: précision de zéro (la signification exacte de ce dépend de la type est en cours d'utilisation).f
:L' type;dans ce cas, Numéro.toFixed.Cela signifie qu'un nombre fixe de chiffres (le précision) apparaissent après la virgule, et le nombre est arrondi si nécessaire.
Autres conseils
on peut en format texte de l'étiquette de flotteur en entier.
pour tarte à la carte:
chart.pie.valueFormat(d3.format(',.0d'));
pour le graphique en ligne:
chart.yAxisTickFormat(d3.format(',.0d'));
L' .tickFormat
méthode sur la .yAxis
la méthode n'est pas à jour correctement.C'est le travail que j'ai utilisé:
chart.yAxisTickFormat(d3.format(',.0d'));
J'ai essayé comme ça
.axisLabel('%').tickFormat(function(d) { return parseFloat(d).toFixed(1) + "%"; });
Son travail pour moi. Je reçois des résultats avec des points décimaux et du pourcentage.