我将此示例用作基础D3.js Drag and Drop, Zoomable, Panning, Collapsible Tree with auto-sizing。
我需要的是一棵树,其中所有叶节点与根的距离相同。 它应该看起来像Cluster Dendrogram。
我会使用Cluster Dendrogram但它缺少缩放,平移和可折叠选项(我已经删除了节点拖动)。此外,两个示例之间的区别在于,一个使用树布局,而另一个使用其他集群布局。
非常感谢您的所有帮助和建议。
答案 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关于节点间距可能有帮助