2014-12-15 5 views
0

내가 TSV 파일 형식 그는 reduceCount 기능을 사용 leaflet.js yurukov's dc.leaflet.js example에서leaflet.js에 직류의 reduceSum를 사용하는 방법

에 대한 crossfilter의 reduceSum 기능을 사용할 수있는 방법. 하지만 reduceSum을 사용하여 데이터 합계를 사용하고 싶습니다.

여기 TSV로 내 데이터를 수 있습니다 :

type geo say 
wind 38.45330,28.55529 10 
wind 38.45330,28.55529 10 
solar 39.45330,28.55529 10 

여기 내 코드입니다 :

<script type="text/javascript" src="../js/d3.js"></script> 
<script type="text/javascript" src="../js/crossfilter.js"></script> 
<script type="text/javascript" src="../js/dc.js"></script> 
<script type="text/javascript" src="../js/leaflet.js"></script> 
<script type="text/javascript" src="../js/leaflet.markercluster.js"></script> 
<script type="text/javascript" src="../js/dc.leaflet.js"></script> 


<script type="text/javascript"> 
    /*  Markers  */ 

d3.csv("demo1.csv", function(data) { 
    drawMarkerSelect(data); 
}); 

function drawMarkerSelect(data) { 
    var xf = crossfilter(data); 

    var facilities = xf.dimension(function(d) { return d.geo; }); 
    var facilitiesGroup = facilities.group().reduceSum(function(d){return d.say}); 

    dc.leafletMarkerChart("#demo1 .map") 
     .dimension(facilities) 
     .group(facilitiesGroup) 
     .width(1100) 
     .height(600) 
     .center([39,36]) 
     .zoom(6) 
     .cluster(true); 

    var types = xf.dimension(function(d) { return d.type; }); 
    var typesGroup = types.group().reduceSum(function(d){return d.say});  


    dc.pieChart("#demo1 .pie") 
     .dimension(types) 
     .group(typesGroup) 
     .width(200) 
     .height(200) 
     .renderLabel(true) 
     .renderTitle(true) 
     .ordering(function (p) { 
     return -p.value; 
     }); 

    dc.renderAll(); 
} 



</script> 

는하지만이 작동하지 않습니다. reduceSum은 어떻게 사용할 수 있습니까? 그건 그냥 다른 crossfilter 기능이기 때문에

감사

+0

고든 (Gordon)은 탭 분리 값인 데이터의 가장 중요한 문제를 확인했지만 위의 예에서 'd3.csv()'는 쉼표로 구분 된 값을 찾고 있습니다. Sidenote : 값이 숫자 대 문자열인지 확인 했습니까? – kwah

답변

1

reduceSum 부분은 잘 작동합니다.

데이터를 올바르게 읽었습니까? tsv 파일이며 탭으로 구분 된 것처럼 보이지만 그 다음에 d3.csv을 사용하여 코드를로드하면 두 번째 필드 중간에 쉼표가있는 것으로 간주하여 매우 나쁜 영향을 미칩니다. .

데이터가로드 된 후 console.log(data)을 시도한 다음 올바르게로드되고 있는지 확인하십시오.

또한 어떤 문제가 발생했는지에 대해서는 언급하지 않았습니다. "효과가 없다"는 것이 도움이되지 않습니다.