更新 D3v4 中的力布局
Posted
技术标签:
【中文标题】更新 D3v4 中的力布局【英文标题】:Updating Force Layouts in D3v4 【发布时间】:2017-03-27 23:06:31 【问题描述】:我正在研究 D3v4 中的强制布局,它需要随着时间的推移更新其节点。我关注了 Adding new nodes to Force-directed layout (D3v2) 和 mbostock 的 block (D3v3),但我不太确定如何在 D3v4 中实现相同的效果。到目前为止,这是我所得到的:
http://bl.ocks.org/danielcompton/2189f9571e306f3084e5c2a913002eaf
我看到的问题是,当我第二次将相同的数据添加到强制布局时,它会重置节点位置,并且似乎用更少的 alpha 重置它们,所以它们不会完全展开,直到它们被点击。 更新节点和链接时是否还需要设置 alpha?
我见过D3 v4: Update force layout,这是一个不同(但相关)的问题。
有人对如何在 D3 v4 中实现这一点有任何提示吗?
【问题讨论】:
【参考方案1】:添加数据后,您可以使用simulation.alpha(1).restart()
重新启动仿真布局。
【讨论】:
【参考方案2】:您处理它的方式似乎是从低 alpha 值开始的。如果我只是在 handleGraph
内使用 .alpha(1)
重置 alpha 值,它就可以解决我的问题:
simulation
.nodes(graph.nodes)
.on("tick", ticked)
.alpha(1);
【讨论】:
以上是关于更新 D3v4 中的力布局的主要内容,如果未能解决你的问题,请参考以下文章