我无法找到任何D3 API文档,这些文档可以让您轻松确定给定d3.layout.tree或任何其他布局所需的宽度和高度,以确保没有节点重叠另一个。
例如,展开所有子节点后,d3.layout.tree example开始重叠。
是否有一个简单的D3方法来确定我的树需要避免重叠的宽度和高度?或者,我是否必须编写自己的方法?
修改
有一个开放的issue可以在将来的某个时候添加此行为。
修改#2
现在有https://github.com/mbostock/d3/wiki/Cluster-Layout#nodeSize和https://github.com/mbostock/d3/wiki/Tree-Layout#nodeSize根据每个节点的大小设置布局的大小。
答案 0 :(得分:2)
我很确定这是你自己需要创建的东西 - 树形布局不知道你将如何表示树节点,标签和其他视觉元素(特别是那些元素的大小)所以它并不一定知道它们是重叠的(你可以减少元素的大小,它们将不再这样做)。因此,我不相信可以在树形布局功能中构建类似的东西。
您可以考虑使用' basewidth'动态设置宽度(或高度,视情况而定)。变量乘以' final'正在显示的节点。