我的仪表板中几乎没有条形图,我在条形图的顶部显示标签。
我的用户要求为标签设置数千个分隔符。
原因是数字超过7位,并且每个小节都有更多。
是否有解决此功能的方法?
这是我的代码:
Chart
.width(1700)
.height(200)
.margins({top: 5, left: 40, right: 20, bottom: 30})
.transitionDuration(1000)
.dimension(dateDim)
//.formatNumber(d3.format(","))
.group(dateGroup)
.renderLabel(true)
.brushOn(true)
.elasticY(true)
//.centerBar(true)
//.x(d3.time.scale().domain([minDate,maxDate]))
.yAxisLabel("Trades per day")
.xAxisLabel("Days")
.ordinalColors(['#215979'])
.x(d3.time.scale().domain([minDate, d3.time.day.offset(maxDate, 1)]))
.yAxis().tickFormat(d3.format('s'));
Chart.xUnits(function(){return 30;});
Chart
.on("postRedraw", function(chart, filter){
window.globalActiveFilters.SelectedTradeCount=chart.filters().join(",")
});
答案 0 :(得分:3)
栏顶部的标签由.label()控制。
对于条形图,默认行为被覆盖以使用堆积条形图的总Y值:
_chart.label(function (d) {
return dc.utils.printSingleValue(d.y0 + d.y);
}, false);
您可以指定自己的标签访问器,该访问器使用@REEE建议的d3.format
,并为其提供总的堆叠值:
.label(d => d3.format(',')(d.y0 + d.y1))
答案 1 :(得分:2)
使用d3格式,您可以在此处找到相关文档:https://github.com/d3/d3-format
示例用例(如上面的链接所示):
d3.format(",")(20000)
-> "20,000"
d3.format(",")(200000000)
-> "200,000,000"