编程语言
首页 > 编程语言> > javascript – 使用d3.js force-layout定位节点的问题.节点“重新进入”每个数据更新,例如内部

javascript – 使用d3.js force-layout定位节点的问题.节点“重新进入”每个数据更新,例如内部

作者:互联网

我前几天曾问过这个问题,但我认为除了paxRoman之外的任何人都没有弄清楚我在问什么,因为没有一个例子很难描述.

然而,我们设法找出可能是我的问题,我设法将代码放在bl.ocks.org上,这样你就可以看到我的意思了一个例子!

这是一个例子:http://bl.ocks.org/3020018

每次刷新数据时(在此示例中,只读取json文件),将重新创建所有节点并将其重新添加到绘图中.

我想要发生什么

我想要节点更新而不移动.

如果新数组中存在一个新节点,它应该就像它们现在一样,如果前一个数组中存在某个但不存在于新数组中,它应该只是消失.

正如您在示例中看到的那样,这不是正在发生的事情,我无法弄清楚过去一周的原因.

所以我的问题是:

我到底做错了什么?是我缺少链接吗?问题是什么?我们两个人昨天花了一个多小时看着这个并且无法理解它,我现在花了很多时间在它上面没有太大进展:/

我的旧问题/帖子是still up,但它的制定很糟糕,我没有示例.

谢谢你帮助我:)

解决方法:

所以,我很确定我已经解决了大部分问题!

它归结为我在更新数据时添加/修改节点的方式.我完全忘记了x / y和类似属性,因为我自己没有设置它们,所以每次更新数据时我都会添加“新”对象,即使它们实际上并不是新的.

使用$.extend()的一些jQuery魔术我有点工作,但每当我更新数据时它仍然会轻微移动/脉动.

我更新了要点以显示更改. http://bl.ocks.org/3020018

我仍然想删除那个小脉动,所以如果你有任何想法让我知道:)

标签:javascript,visualization,d3-js,force-layout
来源: https://codeday.me/bug/20190630/1332896.html