2

crossfilter の reduceSum 関数 dc.leaflet.js を使用して、クラスター化されたマーカーの数ではなく合計を表示したいと考えています。

dc.leaflet.jsの最初の例では、reduceCountを使用しています。さらに、削減された値は使用しません。クラスター内のマーカーの数を表示するだけです。

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>
4

2 に答える 2

0

reduceSumこれはクロスフィルター機能が異なるだけなので、この部分は正常に機能するはずです。

データが正しく読み取られていると確信していますか? あなたはそれがtsvファイルであり、タブで区切られているように見えるコードを示していますd3.csvが、2 番目のフィールドの途中にコンマがあることを考えると、それをロードするために使用します。

データがロードされた後に試しconsole.log(data)て、正しくロードされていることを確認してください。

また、どのような問題が発生したかについても述べていません。「うまくいかない」は、私たちがあなたを助けるのに役立ちません。

于 2014-12-15T21:57:12.737 に答える