早上好,
刚从很棒的 d3js 库开始......
我只想显示具有强制定向布局的图形的一部分。这个想法是将一个节点声明为“中心”,并显示距离该中心节点两(例如)距离内的所有节点,中心节点的邻居和邻居的邻居。如果用户单击其中一个显示的节点,它将成为“新”中心节点并显示不同的“子图”。我想知道是否有实现这种子图布局的示例,以及是否已经在 d3js 中实现了某种“节点距离”算法。
非常感谢
马丁
更新:刚刚找到了修改强制布局的示例,该示例说明了如何从强制定向布局中添加和删除节点和边。
早上好,
刚从很棒的 d3js 库开始......
我只想显示具有强制定向布局的图形的一部分。这个想法是将一个节点声明为“中心”,并显示距离该中心节点两(例如)距离内的所有节点,中心节点的邻居和邻居的邻居。如果用户单击其中一个显示的节点,它将成为“新”中心节点并显示不同的“子图”。我想知道是否有实现这种子图布局的示例,以及是否已经在 d3js 中实现了某种“节点距离”算法。
非常感谢
马丁
更新:刚刚找到了修改强制布局的示例,该示例说明了如何从强制定向布局中添加和删除节点和边。
我刚刚上传了一个交互式力定向子图的“概念证明级别”。
http://justdharma.com/d3/sub-graph/
在这个例子中,我在后台使用了backbonejs。作为我第一次使用backbonejs 实现某些东西,我肯定会以非常粗暴的方式使用它。虽然这个例子可能阐明了如何实现交互式子图的一种方式,但它肯定不是一个模板如何做到这一点 - 正如所说的只是一个概念验证黑客......
这没有在 D3 中实现,我不知道有任何示例。您需要做的是:
fixed
新中心节点的属性设置为true,以防止力布局改变其位置。px
和属性设置为中心位置。py
这里最棘手的部分是计算从每个节点到新中心的路径,但即使这是一个非常标准的算法问题。另外要记住的是,您需要修改包含原力布局的节点和链接的数据结构,即您不能为力布局设置新的节点和链接并期望一切顺利进行。