我对 d3.js 和 javascript 不太熟悉,我需要根据印象数来选取前 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;
});
});
谢谢。感谢您的帮助。
最佳答案
对数据进行排序和切片:
var topData = data.sort(function(a, b) {
return d3.descending(+a.Impressions, +b.Impressions);
}).slice(0, 10);//top 10 here
然后将这个 topData
用于您的段落:
var p = d3.select("body").selectAll("p")
.data(topData)
.enter()
.append("p")
.text(function(d){
return " Campaign = " + d.Campaign + " Impressions = " + d.Impressions;
});
关于javascript - 如何在d3.js中提取前10名数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37962943/