我在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));
我想让我的力导向图变慢。
如果您的问题是节点移动到快速,并且您正在寻找以较慢方式收敛的绘图,请使用simulation.alphaDecay
。
alpha衰减率决定了当前alpha插入所需目标alpha的速度;由于默认目标alpha为零,因此默认情况下它控制模拟冷却的速度。较高的衰减率会使模拟更快地稳定,但有可能陷入局部最小值;较低的值会导致模拟运行时间更长,但通常会收敛于更好的布局。要使模拟永远在当前alpha运行,请将衰减率设置为零;或者,将目标alpha设置为大于最小alpha。