我有一个数字数据集数组:
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("$,.")
提前致谢。
答案 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