在D3v4中更新强制布局

时间:2016-11-14 10:29:52

标签: d3.js force-layout d3v4

我正在研究D3v4中的力布局,需要随着时间的推移更新其节点。我已经关注Adding new nodes to Force-directed layout(D3v2)和mbostock' block(D3v3),但我不太确定如何在D3v4中实现相同的效果。这是我到目前为止所得到的:

http://bl.ocks.org/danielcompton/2189f9571e306f3084e5c2a913002eaf

我看到的问题是,当我第二次将相同的数据添加到力布局时,它会重置节点的位置,并且似乎也会用较少的alpha重置它们,所以它们不会#39; t完全展开,直到点击它们。我在更新节点和链接时是否也需要设置alpha?

我已经看过D3 v4: Update force layout,这是一个不同(但相关)的问题。

有没有人有关于如何在D3 v4中实现这一目标的任何提示?

2 个答案:

答案 0 :(得分:0)

仿真似乎是以你处理它的方式使用低alpha值开始的。如果我只是在.alpha(1)内使用handleGraph重置alpha值,那就可以解决这个问题:

simulation
  .nodes(graph.nodes)
  .on("tick", ticked)
  .alpha(1);

答案 1 :(得分:0)

添加数据后,您可以使用simulation.alpha(1).restart()重新启动模拟布局。