2016-06-22 17 views
1

私はd3.jsとjavascriptで一般的に新しく、その印象によってトップ10のキャンペーンを取る必要があります。これどうやってするの?以下はd3.jsでトップ10のデータを抽出するには?

は私のコードです:

var parseDate = d3.time.format("%d-%b-%y").parse; 

d3.csv("ctr_impressions.csv", function(error, csv_data){ 
    var data = d3.nest() 
       .key(function(d) {return d.Campaign;}) 
       .rollup(function(d){ 
        return d3.sum(d, function(g) { 
         return g.Impressions;})}) 
       .entries(csv_data); 

     data.forEach(function (d) { 
      d.Campaign = d.key; 
      d.Impressions = d.values; 
     }); 
    var p = d3.select("body").selectAll("p") 
      .data(data) 
      .enter() 
      .append("p") 
      .text(function(d){ 
      return " Campaign = " + d.Campaign + " Impressions = " + d.Impressions; 
      }); 
}); 

ありがとうございました。あなたの助けに感謝します。

答えて

0

dataが表示されないと答えが出にくいですが、一般的なパターンは次のようになります。データを並べ替えてスライスします。あなたは書き込み

data.forEach(function (d) { 
     d.Campaign = d.key; 
     d.Impressions = d.values; 
}); 

だけatferその後、

var topData = data.sort(function(a, b) { 
    return d3.descending(+a.Impressions, +b.Impressions); 
}).slice(0, 10); 

そして、あなたの段落のこのtopDataを使用します。

var p = d3.select("body").selectAll("p") 
     .data(topData) 
     .enter() 
     .append("p") 
     .text(function(d){ 
     return " Campaign = " + d.Campaign + " Impressions = " + d.Impressions; 
     }); 
+0

それは動作しますが、そんなにありがとう:) – beneditatan

関連する問題