2012-03-15 116 views
6

我想以树的形式安排我的节点。现在,我正在从here的这个例子中脱颖而出。目前,我依赖的是一种强制指导布局,但我试图对其进行修改,使得我可以获得具有预定数量级别的树,即如果节点属于特定“层”,则它应该属于与其他节点相同的区域图层。如何使用d3及其布局来构建一棵树?

我试图在下面的图片中解释更多,但没有人有任何建议吗? d3内部是否有预定的算法可以做到这一点,或者可以调整以实现这一目标?

enter image description here

+0

该源代码包含动态树的示例。你应该看看它,它可能是你想要的(至少看起来很相似)。 *编辑:*我的意思是[这个例子](https://github.com/mbostock/d3/blob/master/examples/tree/tree-dynamic.html)。 – 2012-03-15 00:47:59

+1

是否有你在这里使用强制定向布局而不是静态树布局的原因,例如http://bl.ocks.org/1061834? – nrabinowitz 2012-03-15 00:48:34

+0

@nrabinowitz:+1谢谢。简直不敢相信我错过了!我猜两者都会为我的目的服务!有没有一种方法可以让它们互动,以便节点在我将它们拖到某个地方时才会回来?这有助于拖拽某个节点并将其解释给某人。 – Legend 2012-03-15 00:55:18

回答

10

你的图看起来几乎相同,this example它使用基于深度定制的重力。有another example使用吸引到父节点的自定义力。这些都是从my talk强制布局。

当然,部队布局只是一个选择 - 而@nrabinowitz说还有更多hierarchy layouts。你可以在我的SVG Open talk中找到moreinteractivehierarchyexamples

+1

你真是一个传奇!非常感谢您花时间向我展示所有示例。顺便说一下,非常翔实的谈话。 – Legend 2012-03-15 03:53:00