2012-07-22 43 views
2

我一直沒能找到任何D3 API文檔,將讓你輕鬆地確定所需的寬度和高度,對於給定的d3.layout.tree,或任何其他佈局,以確保沒有節點相互重疊。如何自動確定d3.layout.tree大小?

例如,一旦展開所有子節點的d3.layout.tree example開始重疊。

有一個簡單的方法D3確定寬度和高度,我的樹必須避免重複?或者,我必須寫我自己的方法嗎?

編輯

有這種行爲的一個開放issue在未來的某一時刻以復加。

EDIT#2

現在有https://github.com/mbostock/d3/wiki/Cluster-Layout#nodeSizehttps://github.com/mbostock/d3/wiki/Tree-Layout#nodeSize設定基於每個節點的大小的佈局的尺寸。

回答

2

我敢肯定,這是你需要創建自己 - 樹佈局不知道你將如何代表樹節點,標籤和其他視覺元素(特別是那些元素的大小)所以它不一定知道它們是重疊的(你可以減小元素的大小,他們不會再這麼做)。因此,我不認爲有可能在樹形佈局功能中構建這樣的東西。

您可以考慮通過使用「basewidth」變量和乘以由正被顯示「最終」的節點的數目動態地設置的寬度(或高度,根據需要)。