2017-04-20 10 views
1

값 접근 자의 백분율은 어떻게 계산합니까? 그룹화 된 값을 더하고이를 나눠서 백분율을 구할 수있을 것이라고 생각했습니다.가짜 그룹에서 백분율 계산

var fakeGroup = { 
       top: function() { 
       return [ 
        votes.top(Infinity).reduce(function(a,b) { 
        if(b.value > 0) { 
         a.value += elecVotesMap.get(b.key) 
        } 
        return a 
        }, { 
        key: "", 
        value: 0 
        }) 
       ] 
       } 
      } 


     percentElec 
     .group(fakeGroup) 
     .formatNumber(d3.format("d")) 
     .valueAccessor(function(){ return fakeGroup/538 * 100; }) 
+0

이 valueAccessor에서 콘솔 문을 넣고 난 당신이해야 할 일을 볼 수 있습니다 의심'.valueAccessor (기능 (D) {을 console.log (D) ; return fakeGroup/538 * 100;})'.valueAccessor (function (d) {return d.value/538 * 100;})와 같은 것이다. ' –

+0

모든 상태가 선택되면 100 % 값을 표시한다. 그러나 각 주를 선출 할 때 그 주에 대한 선거인 투표의 수는 알고 있지만 숫자 표시는 % 계산으로 업데이트되지 않으므로 번호 상자는 비워 둡니다. 538 표가 100 %이고 다른 값이 주어진다는 것을 알고 있기 때문에 왜 그것이 작동하지 않을지 확신 할 수 없습니다. –

+0

알았어. 그냥 전체 값이 아닌 값을 반환했기 때문일 뿐이야. 감사합니다 –

답변

1

Ethans 제안을 추가 한 후에는 십진수 형식이 잘못되어 코드가 여전히 인쇄되지 않습니다. 반환 값은 7.33입니다. 일단 내가 바꾼 숫자가 완벽하게 작동했다.

코드 :

percentElec 
     .group(fakeGroup) 
     .formatNumber(d3.format(".2f")) 
     .valueAccessor(function(d){ return d.value/538 * 100 ; })