javascript - 如何在d3.js中提取前10名数据?

标签 javascript csv d3.js graph

我对 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/

相关文章:

javascript - 隐式导入的 TypeScript 2.1 功能不起作用

javascript - TableExport jquery 插件 : Filename and Extension issue

mysql - 如何使用 Pentaho 在 MySql 数据库中的某个指定数字之后开始插入行?

javascript - 在 d3 力图中缩放 div 工具提示

d3.js - plotly .ly : Simple prefix or suffix for hover text

javascript - 继续用鼠标拖动背景

javascript - Jquery css 选择器如果没有数据则应用样式

javascript - <span> 不能作为 <select> 的 child 出现在 react 中

python - 重新排列 CSV 数据

javascript - D3js - 对文件中的多个数据类别重用行定义/函数