如何使树节点彼此粘在一起(或最小固定间隙)而不在d3中重叠

时间:2016-04-08 05:32:41

标签: javascript html css d3.js svg

我正在尝试创建一个至少有12个级别的二叉树。在12级的情况下,我必须调整2 ^ 12个节点,这非常高,我添加了一个水平滚动条。所以,我希望最后一级的所有节点彼此粘在一起以节省空间和水平滚动,如下图所示:

enter image description here

我不想每次都调整svg的宽度来挤压它们。我想要一些适当的方法来减少最后一级节点之间的分离,并保持节点分离相同,即使svg或容器的宽度增加。 直到现在我还没有在网上找到任何解决方案。

请建议一种方法来实现这一目标。

1 个答案:

答案 0 :(得分:0)

您可以使用节点的深度属性来执行此操作,即:

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

对于树的每个级别,您可以更新它们之间的差距。

为了给你一个想法,看看这个例子: http://plnkr.co/edit/bDBe0xGX1mCLzqYGOqOS?p=preview