如何使用d3力布局显示图表,初始位置设置且根本没有移动?

时间:2013-06-24 22:21:54

标签: d3.js force-layout

我使用d3 force布局来构建图形,然后将节点的位置存储在数据库中。

下次我要显示图表时,我将数据库中的位置读入节点,然后开始强制布局。

这导致布局稍微移动。

我是否可以在不调用force.start()的情况下显示存储节点位置的图形?

我想要的是“只读”模式,以显示之前由其他人创建的稳定图表。

/汉斯

1 个答案:

答案 0 :(得分:11)

我建议你阅读documentation of the force layout。真的很棒。

正如您所提到的,您必须为每个节点设置pxpy属性。然后,您可以在每个节点中将属性fixed设置为true

这意味着计算force.start()不会有任何影响。


您可以尝试的另一件事是将alpha值设置为0,然后开始模拟:

force.alpha(0)
    .start()

我不确定这种方法是否有效。如果没有,请发布一个jsFiddle。