d3强制定向布局中的神秘力量?

Posted

技术标签:

【中文标题】d3强制定向布局中的神秘力量?【英文标题】:Mysterious forces in d3 force directed layout? 【发布时间】:2013-08-13 08:19:39 【问题描述】:

我正在尝试逐步组合两组节点,以使用强制布局来模拟一种临时饼图。为此,我使用了两组节点,它们分别通过链接连接到两个固定的动画焦点节点。当它们与 ruffly 相同数量的节点组合时,效果很好。

见:http://bl.ocks.org/vicapow/6191895

但是,当节点组之间存在很大差异时(例如 1 / 100 ),似乎有一些神秘的额外力施加在远离较大组的较小节点组上

见:http://bl.ocks.org/vicapow/6191896

有没有人知道这种额外的力量可能来自哪里?

我尝试过的一些方法不起作用: + 强制 alpha 保持 1 + 减少摩擦

【问题讨论】:

首先 - 我什么都不知道。顺便说一句:它看起来并不像拒绝或额外的力量。看起来当你有一两个红色节点时,它们的强度不足以迫使自己进入蓝点。 我想对 Kobi 做一个类似的提及——你能详细说明你所说的“神秘力量”是什么意思吗?我确实觉得第一个动画看起来更慢,但这仅仅是因为红色节点和蓝色节点需要将自己定位为彼此分开,而不是第二个动画只有一个节点靠边。 我提到的神秘力量是,在只有一个红色节点的第二个版本中,它似乎在蓝色节点上方盘旋了很远的距离。在第一个版本中没有观察到这种效果,我试图找出一些为什么要删除它。我希望像第一个版本一样将红点撞到蓝点上。所有节点都施加了相同的弹簧和充电力,所以我想不出还有什么会导致这种行为。 更新:有趣的是,如果将节点添加到第一个焦点,则似乎可以正确应用力。只有当孤独节点连接到第二个焦点时,它才会比第一个焦点上的其他节点漂浮得更远。 see this example 【参考方案1】:

我相信您所看到的是缺乏重力。如果没有重力,节点将不会倾向于屏幕中心。通过设置force.gravity(1) 并将节点的费用设置为-100,我能够为您的边缘情况获得所需的结果。 https://bl.ocks.org/david4096/6264697

【讨论】:

这只是将所有节点压缩到中心。如果我想达到这种效果,我会将所有节点链接到一个焦点。或者更好的是,只需添加所有具有重力的节点,而不用担心将节点连接到单个焦点。但相反,我希望将两组节点组合成一大组节点,而不需要这种神秘的额外力量。然后也许稍后,将这些节点组合并到其他组中。也许这更好地说明了我的意思。 link 也许this visualization 可以更好地说明我为什么要首先这样做,并且还显示了在动画结束时节点组合时有问题的工件。

以上是关于d3强制定向布局中的神秘力量?的主要内容,如果未能解决你的问题,请参考以下文章

修复 D3 强制定向布局中的节点位置

使用新数据重新渲染 D3 强制定向布局

如何使 D3.js 中的强制布局图响应屏幕/浏览器大小

如何使 D3 中的标签和节点强制布局可点击以导航到 URL?

向 Hobbelt 的“Group/Bundle Nodes”D3 强制布局示例中的节点添加标签?

json d3强制定向图显示文本属性