d3.js& nvd3.js轴和标签精度格式

时间:2012-07-25 19:05:44

标签: d3.js nvd3.js

使用此示例中显示的堆积面积图 http://nvd3.com/ghpages/stackedArea.html

尝试将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

非常感谢任何建议或提示。

4 个答案:

答案 0 :(得分:24)

目前看起来像this isn't supported by nvd3。请参阅有问题的line

此外,您的格式规范并不完全正确。如文档中所述,"d"忽略非整数值。所以你可能想要",.0f",这意味着:

  • ,:使用逗号分隔数千个。
  • .0精度为零(具体含义取决于正在使用的类型)。
  • f类型;在这种情况下,Number.toFixed。这意味着在小数点后面会出现一个固定的位数(精度),如有必要,该数字将被舍入。

答案 1 :(得分:4)

这个可以将标签文本从float格式化为整数。

饼图的

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

表示折线图:

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

答案 2 :(得分:3)

.tickFormat方法上的.yAxis方法无法正确更新。这是我使用的工作:

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

答案 3 :(得分:3)

我试过这样的

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

它为我工作。我得到小数点和百分比的结果。