9

我使用 d3 force layout 构建了一个图形,然后将节点的位置存储在数据库中。

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

这会导致布局略微移动。

有没有办法在根本不调用 force.start() 的情况下显示带有存储节点位置的图形?

我想要的是一个“只读”模式来显示一个由其他人早些时候创建的稳定图表。

/汉斯

4

1 回答 1

11

我建议您阅读force layout 的文档。这真的很好。

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

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


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

force.alpha(0)
    .start()

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

于 2013-06-25T02:01:01.090 回答