d3.js - D3 JS数据过滤

标签 d3.js

我正在尝试过滤数据集以仅显示某些选定元素的标签。这里显示的过滤器似乎有效,除了它创建了数千个空白元素,我显然想避免这种情况。这是因为过滤器位于附加语句之后,但如果我将过滤器移到附加语句上方,它就会中断。

我在这里做错了什么

  var labels = svg.selectAll("text.label")
    .data(partition.nodes(bp.data.preparedData))
    .enter()
    .append("text")
    .filter(function(d){return d.ci_type === 'type'})
      .attr("class", "label")
      .attr("transform", function(d) { return "translate(" + arc.centroid(d) + ")"; })
      .text(function(d, i) { return d.name } );

最佳答案

听起来您想在将数据传递到 D3 之前对其进行过滤。也就是说,您的代码将是

var labels = svg.selectAll("text.label")
   .data(partition.nodes(bp.data.preparedData).filter(
            function(d){return d.ci_type === 'type'}))
   .enter()
   .append("text")
   .attr("class", "label")
   .attr("transform", function(d) { return "translate(" + arc.centroid(d) + ")"; })
   .text(function(d, i) { return d.name } );

关于d3.js - D3 JS数据过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16244857/

相关文章:

javascript - 对嵌套数组进行分组

javascript - 饼图布局起始 Angular

javascript - 使用闭包将配置绑定(bind)到函数

javascript - 在 d3 力布局中拖动和平移

javascript - D3 数据未通过 onclick 函数更新

javascript - d3 中的分组和汇总

javascript - 图标显示不正确

javascript - d3 图中的事件

html - 为什么 CSS transform,translate 会改变旋转元素的旋转?

javascript - D3.js svg.对 Angular 线问题