我有一个使用“节点”和“线”的 D3 设置。当图表第一次出现时,它会随着重力反弹,直到它停留在中间。有谁知道一种让它自动出现在中间而没有“反弹”效果的方法?
PS我正在使用强制布局
我有一个使用“节点”和“线”的 D3 设置。当图表第一次出现时,它会随着重力反弹,直到它停留在中间。有谁知道一种让它自动出现在中间而没有“反弹”效果的方法?
PS我正在使用强制布局
调用 start 会重置冷却参数 alpha;随着布局收敛于其解决方案,alpha 呈指数衰减,然后停止以避免浪费 cpu。开始时没有抖动(除了重合节点,这是避免被零除所必需的)。然而,只要你有冲突的力量和几何约束(链接),很自然地期望布局在开始时进行调整。
如果你想避免这种反弹,你要么需要让图形永久保持热状态(比如通过调用d3.timer(function() { force.resume(); })
),要么你需要做其他事情,比如手动调整 alpha 参数以逐渐而不是瞬间重新加热。
编辑:在 2.8.x 中,您可以通过在启动时同步运行强制布局来完全避免第一次反弹。例如:http ://bl.ocks.org/1667139
我之前使用的另一种策略是在第一个(例如,50 或 100 个力滴答声)上逐渐增加每个节点的半径。您可以在one.org 数据站点上的 Dorling 地图中看到它的样子(在 Protovis 中,但在 d3 中的行为方式相同)。