如何在d3.js中更改力导向图的速度?

时间:2017-07-17 05:37:04

标签: d3.js force-layout

我在d3.js v4中生成了一个力导向图。

但是我想改变模拟的速度,这太快了。所以,我想放慢速度。我的模拟如下:

  var simulation = d3.forceSimulation()
      .force("link", d3.forceLink().id(function (d) { return d.id; }).distance(100).strength(1))
      .force("collide", d3.forceCollide(function (d) { return d.r + 8 }).iterations(16))
      .force("charge", d3.forceManyBody().strength(-700).distanceMin(100).distanceMax(1000))
      .force("center", d3.forceCenter(width / 2, height / 2));

我想让我的力导向图变慢。

1 个答案:

答案 0 :(得分:0)

如果您的问题是节点移动很快,而您正在寻找以较慢的速度收敛的情节,请使用simulation.alphaDecay

documentation

  

alpha衰减率确定当前alpha向所需目标alpha内插的速度;由于默认目标Alpha为零,因此默认情况下,此控件可控制模拟冷却的速度。较高的衰减率会使模拟更快地稳定下来,但是有陷入局部最小值的风险。较低的值会使模拟花费更长的时间才能运行,但通常会收敛到更好的布局上。要使仿真永远在当前alpha下运行,请将衰减率设置为零;否则,将衰减率设置为零。或者,将目标alpha设置为大于最小alpha。