2015-12-01 27 views
0

我正在D3中使用Collapsible Force Layout,我需要一種方法來完全摺疊圖形(我可以通過節點展開圖形節點)。我的圖形相對較大,它的信息量滯後於屏幕。將摺疊圖形繪製到D3中的單個點上

我認爲調用圖中所有節點上的click()函數會將圖形摺疊爲單個點。有click events上的示例,但我對JavaScript不熟悉,無法知道如何或將它們放在哪裏代碼來實現它們。

This answer之前已經提供了似乎沒有工作時,添加之間的root = json和update();線。如果有,請解釋添加它的位置。

+0

我試過這個答案頁上的建議,它似乎並沒有工作。我在原始問題中添加了鏈接,以查看是否有其他人可以使其工作。 – Sycomantis

回答

0

單擊事件交換節點.children._children變量(繪製圖形時忽略第二個變量)。

如果您打開graph.json文件並使用「_children」查找/替換所有「children」,則應該以摺疊狀態開始。

+0

太棒了!還有一個問題,現在當我將節點展開到橙色的「葉」時,葉節點不顯示,我看到的只是一個缺少節點的鏈接。我需要爲葉節點添加一個空的子節嗎? – Sycomantis

+0

@Sycomantis nope,你不應該添加孩子,也許'size'值很小? (如果它是100,那麼該圓的半徑將爲1px)。 (ps,答案是否解決了你原來的問題?如果是這樣,你可以標記嗎?) – benjaminbenben

+0

顯然,從孩子到孩子的變化不起作用。我在主體中添加了另一個線程的鏈接。在該線程中發佈的答案似乎不適用於我。要麼是這個,要麼我不完全明白把它放在哪裏。 – Sycomantis