【问题标题】:Updating Force Layouts in D3v4更新 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 中实现这一点有任何提示吗?

【问题讨论】:

    标签: force-layout d3.js


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2016-12-02
        • 2020-09-17
        • 1970-01-01
        • 2017-08-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-29
        相关资源
        最近更新 更多