我在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));
我想让我的力导向图变慢。
答案 0 :(得分:0)
如果您的问题是节点移动很快,而您正在寻找以较慢的速度收敛的情节,请使用simulation.alphaDecay
。
alpha衰减率确定当前alpha向所需目标alpha内插的速度;由于默认目标Alpha为零,因此默认情况下,此控件可控制模拟冷却的速度。较高的衰减率会使模拟更快地稳定下来,但是有陷入局部最小值的风险。较低的值会使模拟花费更长的时间才能运行,但通常会收敛到更好的布局上。要使仿真永远在当前alpha下运行,请将衰减率设置为零;否则,将衰减率设置为零。或者,将目标alpha设置为大于最小alpha。