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

问题描述 投票:0回答:1

我在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));

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

d3.js force-layout
1个回答
0
投票

如果您的问题是节点移动到快速,并且您正在寻找以较慢方式收敛的绘图,请使用simulation.alphaDecay

来自documentation

alpha衰减率决定了当前alpha插入所需目标alpha的速度;由于默认目标alpha为零,因此默认情况下它控制模拟冷却的速度。较高的衰减率会使模拟更快地稳定,但有可能陷入局部最小值;较低的值会导致模拟运行时间更长,但通常会收敛于更好的布局。要使模拟永远在当前alpha运行,请将衰减率设置为零;或者,将目标alpha设置为大于最小alpha。

© www.soinside.com 2019 - 2024. All rights reserved.