Filter D3中的过滤器之后需要重新计算分区布局吗?

Filter D3中的过滤器之后需要重新计算分区布局吗?,filter,d3.js,partition,Filter,D3.js,Partition,我使用可缩放的冰柱布局示例来查看文件夹层次结构 我目前使用的过滤器功能如下: var data = partition.nodes(root).filter( function (d) { return d.parent == null ? d.children && d.dateAccessed > formattedD : d.children && d.dateAccessed > formattedD &

我使用可缩放的冰柱布局示例来查看文件夹层次结构

我目前使用的过滤器功能如下:

var data = partition.nodes(root).filter(
        function (d) {
            return d.parent == null ? d.children && d.dateAccessed > formattedD : d.children && d.dateAccessed > formattedD && d.parent.dateAccessed > formattedD;
        });
这会根据文件夹的DateAccess是否在某个日期之后,筛选出是否需要显示/不显示文件夹(及其所有子文件夹)

然后,我使用使用此数据变量的示例代码来绘制分区

rect = rect
               .data(data)
              .enter().append("rect")
              .attr("x", function (d) { console.log(!d.children); return x(d.x); })
              .attr("y", function (d) { return y(d.y); })
              .attr("width", function (d) { return x(d.dx); })
              .attr("height", function (d) { return y(d.dy); })
              .attr("fill", function (d) {
                  return (type == "Documents") ? '#9370DB' : (type == "Pictures") ? '#87CEFA' : (type == "Music") ? '#6B8E23' : (type == "Videos") ? '#F0E68C' : "#000000";
              })
              .on("click", clicked);
我需要布局来重新计算文件夹的放置位置,因为当前它为过滤掉的文件夹保留了空间(请参见附件)。(请原谅图像中文件夹的组织混乱,这是读取图像时的情况。)


非常感谢。

您需要过滤原始数据并再次运行
树布局
,以重新计算
d.x
d.y
。感谢您的评论,如何再次运行它?在调用分区.node之前,需要过滤
根目录
,以获得正确的
d.x
d.y
。对不起,我最初的评论有点误导。谢谢你的澄清…你能不能包括一行如何过滤根目录的代码?非常感谢。我问的原因是,它不会让我简单地说
root.filter(函数(d){return d.children;})
,因为有一个错误是说对象没有方法过滤器。