2016-08-18 103 views
1

我使用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

回答

3

你可以使用這個移動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