我想用 D3 创建具有预定义深度的树。
有没有办法在生成树之前设置深度?
这取决于您对“树”的定义。D3 有几个层次布局,其中d3.layout.tree就是其中之一。树布局是指 Reingold-Tilford 的整洁树布局算法。这种特定的算法不利于自定义节点的深度,因为它假设所有兄弟节点的深度相同(以便它可以整齐地放置节点)。
相比之下,d3.layout.cluster可以轻松修改以在自定义深度渲染节点。只需忽略生成的d.y
坐标并替换您自己的深度值(可能与线性比例一起从数据映射到像素)。有关此技术的示例,请参阅 Ken-ichi Ueda 的直角系统图。