d3.js.以区域设置格式显示数据集编号

时间:2016-11-14 09:29:19

标签: javascript d3.js

我有一个数字数据集数组:

var dataset = [ 2147000, 3750000, 3434000, 3095000, 8132000, 8875000, 7727000, 6605000 ];

和语言环境定义:

var ES = d3.locale (…)

我有渲染数据集的代码:

svg.selectAll("text")
    .data(dataset)
    .enter()
    .append("text")
    .text(function(d) {
      return d;
    })

我想以区域设置格式显示数字,但我不知道如何告诉它功能(d)

这是一个codepen工作。我想以本地格式显示栏内的标签。 (第65行) http://codepen.io/aitormendez/pen/xRVNMb?editors=0010

我尝试了ES.numberFormat("$,.")

提前致谢。

1 个答案:

答案 0 :(得分:2)

您用作ES.numberFormat("$,.")

tickFormat是一个函数,并且给定一个参数(一个数字),它将返回给定指定格式的格式化字符串。因此,您可以格式化数字1000000,只需调用ES.numberFormat("$,.")(d)(1000000)即可使用该功能。

在您的代码中实现:

svg.selectAll("text")
    .data(dataset)
    .enter()
    .append("text")
    .text(function(d) {
      return ES.numberFormat("$,.")(d);
    })

更好的方法是将函数声明为

var nbrFormat = ES.numberFormat("$,.");

然后使用

.tickFormat(nbrFormat);

return nbrFormat(d);

将格式声明限制在一个地方,而不是两个。

请参阅https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md