讓我首先說明我對D3和Javascript是全新的。通過一點點實驗,我試圖開發一個Tree Like結構,節點可以有多個父母。D3圖形佈局 - 具有多個父級的樹結構
輸入:
的Json與節點和鏈接信息一樣,
var graph = {
"nodes": [ { "id" : 0},
{ "id" : 1},
{ "id" : 2},
{ "id" : 3},
{ "id" : 4},
{ "id" : 5}
],
"links": [ { "target": 5, "source": 1 },
{ "target": 2, "source": 0 },
{ "target": 3, "source": 4 },
{ "target": 1, "source": 2},
{ "target": 1, "source": 0 },
]
};
注:這只是參考,因爲我怎麼有數據,也可能是數千節點。
輸出:
我要像樹結構的輸出,有點像this,如說的節點必須等與根是在頂部和相同的水平結構的深度/水平被繪製節點以這樣的方式排列以最小化鏈路重疊。
問題,我面對:
- 由於我只給節點及其來源&目標,而不是它們的座標,我經歷了整個列表解析計算的水平,然後除以基於高度在那個級別上,然後繪製節點。處理這類問題的最有效方法是什麼?我應該深入研究算法解決方案嗎?
或者
- 是否有D3一些圖表描繪函數,它接受這個JSON作爲輸入並執行該作業的其餘部分?
請不說,節點可以有多個父和我在這裏主要焦點正密謀在適當/等級秩序這些節點的,所以我現在面臨的主要問題是計算X/Y座標的所有節點只給出如上所述的輸入。
請幫我更好的理解這個話題,謝謝。
我無法弄清楚你的預期輸出。 **假設零**是根節點,它會[看起來像這樣](http://imgur.com/a/FZCrP)。由於父母/子女關係失敗,3到4會消失...這是您的預期產出嗎? – Mark
@Mark實際上,輸入只是作爲輸入的參考,它可能包含數千個節點,例外的輸出不管是哪個根節點應該出現在頂部,然後是它的子節點等等最小鏈路重疊。希望我能夠解釋我自己;) – Mohit
但是,我的圖是預期的輸出給你的樣本數據? – Mark