簡體   English   中英

使用d3.js force-layout定位節點的問題。 節點“重新進入”每個數據更新,例如內部

[英]Problems positioning nodes with d3.js force-layout. Nodes “re-entering” each data update, example inside

我前幾天曾問過這個問題,但我認為除了paxRoman之外的任何人都沒有弄清楚我在問什么,因為沒有一個例子很難描述。

然而,我們設法找出可能是我的問題,我設法將代碼放在bl.ocks.org上,這樣你就可以看到我的意思了一個例子!

這是一個例子: http //bl.ocks.org/3020018

每次刷新數據時(在此示例中,只讀取json文件),將重新創建所有節點並將其重新添加到繪圖中。

我想要發生什么

我想要節點更新而不移動。

如果新數組中存在一個新節點,它應該就像它們現在一樣,如果前一個數組中存在某個但不存在於新數組中,它應該只是消失。

正如您在示例中看到的那樣,這不是正在發生的事情,我無法弄清楚過去一周的原因。

所以我的問題是:

我到底做錯了什么? 是我缺少鏈接嗎? 問題是什么? 我們兩個人昨天花了一個多小時看着這個並且無法理解它,我現在花了很多時間在它上面沒有太大進展:/

我的舊問題/帖子仍在繼續 ,但它的制定很糟糕,我沒有任何示例可展示。

謝謝你幫助我:)

所以,我很確定我已經解決了大部分問題!

它歸結為我在更新數據時添加/修改節點的方式。 我完全忘記了x / y和類似屬性,因為我自己沒有設置它們,所以每次更新數據時我都會添加“新”對象,即使它們實際上並不是新的。

使用$.extend()一些jQuery魔術我有點工作,但每當我更新數據時它仍然會輕微移動/脈動。

我更新了要點以顯示更改。 http://bl.ocks.org/3020018

我仍然想刪除那個小脈動,所以如果你有任何想法讓我知道:)

您是否嘗試過設置摩擦參數(您有linkDistance和charge set)? 將其設置為0.9將加快找到最終位置,因為我認為如果沒有設置它默認為1。 它只是一個添加的案例

.friction(0.9) // or any suitable value closer to 0 - have a play!

希望有所幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM