overlap
首先使用 sep
屬性放大節點。如果為 true
,則保留重疊。如果值為 "scale"
,則通過在 x 和 y 方向上均勻縮放來移除重疊。如果值轉換為 "false"
且可用,則使用基於鄰近圖的演算法 Prism 來移除節點重疊。也可以使用 overlap=prism
明確調用此方法。此技術從小的縮放開始,由 overlap_scaling
屬性控制,這可以消除大部分重疊。 prism 選項還接受可選的非負整數後綴。這可用於控制移除重疊的嘗試次數。預設情況下,overlap="prism"
等效於 overlap="prism1000"
。設定 overlap="prism0"
會導致僅執行縮放階段。
如果 Prism 不可用,或 Graphviz 版本早於 2.28,則 "overlap=false"
使用基於 Voronoi 的技術。始終可以使用 "overlap=voronoi"
明確調用此技術。
如果 overlap="scalexy"
,則分別縮放 x 和 y 以移除重疊。
如果 overlap="compress"
,則佈局將盡可能縮小,而不會引入任何重疊,顯然假設一開始沒有重疊。
注意: overlap
的其餘允許值對應於目前可能產生不良長寬比的演算法。此外,我們不建議使用 "ortho*"
和 "portho*"
。
如果值為 "vpsc"
,則執行重疊移除,作為二次最佳化,以最小化節點位移,同時移除節點重疊。
如果值為 "orthoxy"
或 "orthoyx"
,則通過最佳化兩個約束問題(一個用於 x 軸,另一個用於 y 軸)來移動重疊。後綴表示首先處理哪個軸。如果值為 "ortho",則該技術與 "orthoxy" 類似,只是使用啟發式方法來減少兩次傳遞之間的偏差。如果值為 "ortho_yx"
,則該技術與 "ortho"
相同,只是 x 和 y 的角色反轉。值 "portho"
、"porthoxy"
、"porthoxy"
和 "portho_yx"
與前四個相似,只是僅強制執行偽正交排序。
如果佈局由 neato 使用 mode="ipsep"
完成,則可以使用 overlap=ipsep
。在這種情況下,重疊移除約束將納入佈局演算法本身。注意:目前,這僅支援一層叢集。
除了 fdp
和 sfdp
之外,佈局預設為 overlap="true"
。 Fdp 首先使用多個傳遞來嘗試使用內建的力導向技術來移除重疊。因此,fdp
接受帶有整數前綴後跟冒號的 overlap
,指定嘗試次數。如果沒有前綴,則不會執行任何初始嘗試。如果冒號後沒有任何內容,則不會嘗試上述任何方法。預設情況下,fdp
使用 overlap="9:prism"
。請注意,overlap="true"
、overlap="0:true"
和 overlap="0:"
都會關閉所有重疊移除。
預設情況下,sfdp
使用 overlap="prism0"
。
除了 Voronoi 和 prism 方法之外,所有這些轉換都會保留原始佈局的正交順序。也就是說,如果兩個節點的 x 坐標最初相同,它們將保持相同,並且如果一個節點的 x 坐標最初小於另一個節點的 x 坐標,則此關係在轉換後的佈局中仍然成立。y 坐標也具有類似的屬性。對於 "porth*"
情況,這並不完全正確。對於這些情況,僅在邊緣相關的節點之間保留正交順序。
- 圖形