我想用D3创建具有预定义深度的树。
有没有办法在生成树之前设置深度?
答案 0 :(得分:5)
这取决于你对“树”的定义。 D3有several hierarchy layouts,其中d3.layout.tree是一个。树布局是指Reingold-Tilford的tidy tree layout算法。这种特殊的算法不利于自定义节点的深度,因为它假设所有兄弟都是相同的深度(这样它可以整齐地放置节点)。
相反,可以轻松修改d3.layout.cluster以在自定义深度渲染节点。只需忽略生成的d.y
坐标并替换您自己的深度值(可能与linear scale结合以从数据映射到像素)。有关此技术的示例,请参见Ken-ichi Ueda的right-angle phylograms。