我前几天曾问过这个问题,但我认为除了paxRoman之外的任何人都没有弄清楚我在问什么,因为没有一个例子很难描述。
然而我们设法找出可能是我的问题,我设法将代码放在bl.ocks.org上,这样你就可以看到我的意思了一个例子!
以下是示例: http://bl.ocks.org/3020018
每次刷新数据时(在此示例中,只需从json文件中读取),将重新创建所有节点并将其重新添加到绘图中。
我想要发生什么
我希望节点能够在不移动的情况下进行更新。
如果新数组中存在一个新节点,它应该就像它们现在一样,如果前一个数组中存在但新内容不存在,它应该会消失。
正如您在示例中看到的那样,这不是正在发生的事情,我无法弄清楚过去一周的原因。
所以我的问题是:
我实际上做错了什么?是我缺少链接吗?问题是什么?我们两个人昨天花了一个多小时看着这个并且无法理解它,我现在花了很多时间在它上面没有太大进展:/
我的旧问题/帖子是still up,但它的制定很糟糕,我没有示例。
感谢您帮助我:)
答案 0 :(得分:3)
所以,我很确定我已经解决了大部分问题!
归结为我在更新数据时添加/修改节点的方式。我完全忘记了x / y和类似属性,因为我自己没有设置它们,所以每次更新数据时都会添加“新”对象,即使它们实际上并不是新的。
使用$.extend()
的一些jQuery魔法我有点工作,但每当我更新数据时它仍然会轻微移动/脉动。
我更新了要点以显示更改。 http://bl.ocks.org/3020018
我仍然想删除那个小小的脉动,所以如果你有任何想法,请告诉我:))
答案 1 :(得分:0)
您是否尝试过设置摩擦参数(您有linkDistance和charge set)?将其设置为0.9将加快找到最终位置,因为我认为如果没有设置它默认为1。它只是一个添加
的情况.friction(0.9) // or any suitable value closer to 0 - have a play!
希望有所帮助