[英]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.