如何在force.start上停止力导向图的移动

时间:2013-12-05 07:10:40

标签: d3.js force-layout

我使用强制有向图来显示图形视图上的拓扑数据。我写了下面的代码:

var force = d3.layout.force()
        .charge(-120)
        .alpha(0)
        .linkDistance(65)
        .gravity(0.03)
        .size([width, height]);

force
      .nodes(data.nodes)
      .links(data.links)
      .start();

当我执行代码图初始化时,我需要停止一些运动。我希望静态位置上的图形显示没有任何移动,并且所有链接大小在图形初始化时应该相同。如果我会拖动它然后它会移动。 任何帮助将不胜感激....!

1 个答案:

答案 0 :(得分:9)

以下是static force-directed layout初始化的示例。

  

“我们不是每次勾选更新图表,而是按固定次数运行图表,然后再显示一次。”

force.start();
for (var i = n * n; i > 0; --i) force.tick();
force.stop();

这并不妨碍您以通常的方式设置可拖动节点:

.call(force.drag);

您可以通过控制linkStrength

来帮助链接达到您想要的大小