2016-08-18 3 views
1

원형 차트를 표시하는 데 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

자바 스크립트를 게시 할 수 있습니까? @Juanjo –

+0

이것은 확실히 감사 할 곳이 아닙니다. 그러나 귀하의 질문은 저의 일주일을 절약 해주었습니다. 가짜 차원 (데이터 집합에서 세 가지 다른 열을 사용하는 원형 차트)을 만들었습니다. 마지막 요구 사항은 백분율을 표시하는 것이었고 도움이되었습니다. – Himanshu

답변

3

당신은이 이동 d3.format('.0f');은 소수점 이하 0 장소를 값 사용할 수 있습니다.

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

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

작동하지 않습니다. 내가 읽은 문서에서 "CoordinateGrid Chart"에 대해서만 작동합니다. 만약 시도해 본다면 원형 차트를위한 함수가 아니기 때문에 실패합니다. – Juanjo

+2

이런 일이 가능할 것이라고 생각했는데, 데이터 포맷을 시도 했습니까? ' –

+1

값이 정수이기 때문에 문제가있는 값이 렌더링에 있습니다. 'data.forEach (function (d) { d.value = Math.trunc (d.value); }); 이것은 차트의 생성자보다 앞서 나에게 도움이되었습니다. dc.utils.printSingleValue.fformat = d3.format ('.0f'); – Juanjo