2012-04-23 76 views
2

我在D3中使用強制定向佈局來抓取JSON文件中的數據,然後在雙擊其中一個節點時查詢數據庫以查找鏈接到該節點並更新試圖將新數據附加到該節點的鏈接和節點陣列。看起來,當節點沒有鏈接時,它們工作正常,但到xy座標的鏈接最終爲NaN。你可以在這裏看到效果,對其中一個節點只需要雙擊:通過重寫代碼遵循強制定向佈局NaN附加在D3.js

http://blockses.appspot.com/2432083

回答

7

我解決了這個力導向與博斯托克追加例子。當你覆蓋你的節點和鏈接數組而不是將數據推送給它們時,這個問題似乎就會發生,以防有人遇到類似的問題。

更新的代碼是在原來的要點,可以在這裏看到:

http://blockses.appspot.com/2432083

+3

只是任何人誰都有這個問題,一直在增加鏈接之前停止的佈局。內部刻度計算使用其他數組,假定其長度與鏈接相同。在計算新鏈接時,內部狀態將是'未定義的',並且'NaN'將被傳播到新鏈接的源節點和目標節點的'd.x'和'd.y'。當你調用'force.start()'時,所有這些都會重新對齊,所以爲了確保在發生任何滴答之前完成這個操作,在添加數據之前停止佈局。 – 2015-04-28 15:00:16