在饼图中删除小数点dc.js

问题描述:

我使用dc.js显示饼图,并尝试从数字中删除小数点但我无法做到。在饼图中删除小数点dc.js

pie chart with decimals

代码:

addPieChartWidget(innerContainer, dimFunction, reduceFunction , colors){ 
      var chart = dc.pieChart(innerContainer); 
      var dim = this.crossFilterModel.dimension(dimFunction); 
      var groupingStrategy = dim.group().reduceSum(reduceFunction); 
      chart 
       .width(innerContainer.offsetWidth) 
       .height(innerContainer.offsetHeight) 
       //.slicesCap(4) 
       .innerRadius(0) 
       .dimension(dim) 
       .group(groupingStrategy) 
       .renderLabel(true) 
       .legend(dc.legend().x(18).y(18).itemHeight(16).gap(1)) 
       //.legend(dc.legend()) 
       // workaround for #703: not enough data is accessible through .label() to display percentages 
       .on('pretransition', function(chart) { 
        chart.selectAll('text.pie-slice').text(function(d) { 
         return d.data.key + ' ' + dc.utils.printSingleValue((d.endAngle - d.startAngle)/(2*Math.PI) * 100) + '%'; 
        }) 
       }); 

       chart.on("filtered", dojo.hitch(this, this.fiterChangeHandler)); 

     } 

任何人都可以帮我吗?

感谢

+1

你能发布你的JavaScript吗? @Juanjo –

+0

这绝对不是感谢的地方。但是你的问题拯救了我的星期工作。我创建了假维(使用数据集中三个不同列的饼图)。我最后的要求是显示百分比,它有帮助。 – Himanshu

你可以使用这个移动d3.format('.0f');值小数点后0位。

var xTickformat = d3.format('.0f'); 

chart.xAxis().tickFormat(xTickformat); 
+0

它不起作用。在我阅读的文档中,仅适用于“CoordinateGrid图表”。如果我尝试它,它会失败,因为它不是饼图的功能 – Juanjo

+2

啊废话认为这将工作,您是否尝试格式化您的数据? 'data.forEach(function(d){ d.value = Math.trunc(d.value); });' –

+1

问题不在于值,是在渲染中,因为值是整数。 这对我来说,在图表的构造函数之前: dc.utils.printSingleValue.fformat = d3.format('。0f'); – Juanjo