2016-06-22 3 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을 보지 않고 답을 제공하기는 어렵지만 일반적인 패턴은 다음과 같습니다. 데이터를 정렬 한 다음 슬라이스합니다.

그냥 atfer :

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

를 다음 단락이 topData 사용 :

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

당신은 쓰기

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

작동이 너무 많은 감사를 :) – beneditatan

관련 문제