D3树布局,所有叶子与根相同距离

时间:2015-07-28 10:35:08

标签: javascript d3.js tree cluster-computing distance

我将此示例用作基础D3.js Drag and Drop, Zoomable, Panning, Collapsible Tree with auto-sizing

我需要的是一棵树,其中所有叶节点与根的距离相同。 它应该看起来像Cluster Dendrogram

我会使用Cluster Dendrogram但它缺少缩放,平移和可折叠选项(我已经删除了节点拖动)。此外,两个示例之间的区别在于,一个使用树布局,而另一个使用其他集群布局。

非常感谢您的所有帮助和建议。

1 个答案:

答案 0 :(得分:0)

实现起来可能并不容易,因为树形布局喜欢它的深度,但你可以做这样的事情。

nodes.forEach(function(d) {if(!d.children){
    d.depth = 3; //3 should be replaced with whatever your lowest depth is
                 //you could write a function to find it too. let me know if you need that
}})

nodes.forEach(function (d) {d.y = d.depth * 300;});

这将完成您所谈论的部分内容,但没有什么可以阻止节点在这里重叠。这篇文章:Avoid overlapping of nodes in tree layout in d3.js关于节点间​​距可能有帮助