2012-07-25 120 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我得到的结果与工作小数点和百分比。