2012-07-25 69 views
18

使用堆疊面積圖所看到在這個例子中 http://nvd3.com/ghpages/stackedArea.htmld3.js&nvd3.js軸和標籤精度格式

試圖格式化y軸刻度標記標籤和工具提示標籤是整數,而不是浮。試圖從

chart.yAxis 
     .axisLabel('Users') 
     .tickFormat(d3.format(',.2f')); 

改變後續代碼

chart.yAxis 
     .axisLabel('Users') 
     .tickFormat(d3.format(',.0d')); 

精密保持不變(仍顯示值百位)。我跟着Github Wiki無效https://github.com/mbostock/d3/wiki/Formatting#wiki-d3_format

任何建議或提示將不勝感激。

回答

22

看起來像this isn't supported by nvd3此刻。查看冒犯的line

此外,您的格式規格不太正確。如文檔中所述,"d"忽略非整數值。所以你可能需要",.0f",這意味着:

  • ,:使用逗號分隔數千。
  • .0精度的零(此確切含義取決於其類型正在使用)。
  • f類型;在這種情況下,Number.toFixed。這意味着在小數點後面出現固定數量的數字(精度),並且如果需要,數字將被舍入。
+0

感謝您的答案和格式化的破敗! – Viet 2012-07-26 19:03:58

+2

其他人應該發現它有用。我在這裏用d3格式化程序製作了一個小教程:http://koaning.github.io/html/d3format.html – cantdutchthis 2014-08-22 18:27:46

4

.yAxis方法中的.tickFormat方法無法正確更新。這是我使用的工作:

 chart.yAxisTickFormat(d3.format(',.0d')); 
4

這可以將標籤文本從浮點格式轉換爲整數。

的餅圖:

chart.pie.valueFormat(d3.format(',.0d'));

折線圖:

chart.yAxisTickFormat(d3.format(',.0d')); 
1

我已經試過這樣

.axisLabel('%').tickFormat(function(d) { return parseFloat(d).toFixed(1) + "%"; }); 

它的me.I我得到的結果與工作小數點和百分比。