2013-11-21 78 views
2

我正在研究一個基本上包含至少150個使用D3 Javascript的節點的圖。這個想法可以描述如下:D3中的力定向圖中的節點之間的鏈接

一個節點連接到100個節點。這100個節點的49個節點連接到其他49個節點。

讓我們澄清它。我認識100人。他們中有49人有生日。每個節點代表一個節點。

以這種方式,我可以設法使用sourcetarget通過JavaScript中的一些數組將它們鏈接在一起。我想我錯過了一些非常重要的事情來理解D3中的Force-Directed Graph。據我所知,鏈接可以用sourcetarget來實現。我的問題是我無法理解如何將這些鏈接鏈接到這些節點。我不知道在什麼基礎上我可以創建一個陣列來保存我的名字,人們的姓名和生日,這樣他們就可以聯繫在一起。在我的圖中,它給了我合適的人,但錯誤的生日。任何人都可以請指導我如何處理這件事的正確方法。我正在學習本教程:並且無法理解我如何創建一個數組來添加諸如姓名,人名和生日等信息。

http://bl.ocks.org/mbostock/4062045

您的幫助將是非常讚賞。

+0

恐怕您需要發佈您在jsfiddle或其他地方使用過的某些模擬數據,以便我們能夠引導您。 –

+0

問題是我有大量的數據。我會盡力設法做到這一點。 – user2864315

回答

4

節點和鏈接的鏈接方式是按索引。也就是說,如果target: 0,這意味着該鏈接的目標節點是節點列表中的第一個節點,如傳遞給力佈局。您可以將所需的任何數據添加到鏈接和節點 - 對於鏈接,節點也可通過link.sourcelink.target獲得。

或者,您可以指定鏈接的源和目標作爲對象本身 - 這實際上是D3在將鏈接傳遞到強制佈局時在內部執行的操作。由於它不能與索引一起工作,所以它們被替換爲解析的節點對象(這就是爲什麼您可以通過鏈接訪問實際對象)。

如果您通過外部數據(例如JSON)指定圖結構,那麼您應該使用索引來標識鏈接中的節點。如果您使用Javascript生成數據結構,則可以使用對實際對象的引用。

+0

Lars。你的答案總是有幫助的。其實我從JSON文件中檢索數據並將它們放入數組中。在那之後,我會在你的回答的開頭就應用你所解釋的。同時,如果您可以閱讀我的代碼,我將非常感激。我會盡量寄給你一些我的代碼樣本。在這種情況下,您是否認爲源和目標可以通過我在其中存儲節點的數組的索引來定義?! – user2864315

+0

你的問題的答案几乎肯定是的,但是一旦我看到你的代碼,我應該能夠更明確地回答。 –

+0

我如何向您展示我的代碼?有沒有可能這樣做? – user2864315

相關問題