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軸の2つの制約問題を最適化することで移動されます。サフィックスは、最初に処理される軸を示します。値が"ortho"の場合、手法は"orthoxy"と同様ですが、2つのパス間のバイアスを減らすためのヒューリスティックが使用されます。値が"ortho_yx"
の場合、手法は"ortho"
と同じですが、xとyの役割が反転します。値"portho"
、"porthoxy"
、"porthoxy"
、および"portho_yx"
は、前の4つと似ていますが、擬似直交順序のみが強制されます。
mode="ipsep"
でneatoによってレイアウトが行われる場合、overlap=ipsep
を使用できます。この場合、重なり除去の制約はレイアウトアルゴリズム自体に組み込まれます。注記: 現在、これは1レベルのクラスタリングのみをサポートしています。
fdp
とsfdp
を除いて、レイアウトはデフォルトとしてoverlap="true"
を想定しています。Fdpはまず、組み込みの力指向手法を使用して、重なりを除去しようとします。そのため、fdp
は整数プレフィックスにコロンを付けたoverlap
を受け入れ、試行回数を指定します。プレフィックスがない場合、初期試行は実行されません。コロンの後に何もない場合、上記の方法はいずれも試行されません。デフォルトでは、fdp
はoverlap="9:prism"
を使用します。overlap="true"
、overlap="0:true"
、およびoverlap="0:"
はいずれも、すべての重なり除去をオフにします。
デフォルトでは、sfdp
はoverlap="prism0"
を使用します。
Voronoi法とprism法を除いて、これらの変換はすべて元のレイアウトの直交順序を保持します。つまり、2つのノードのx座標が元と同じである場合、それらは同じままであり、1つのノードのx座標が元の別のノードのx座標より小さい場合、この関係は変換されたレイアウトでも依然として保持されます。同様のプロパティはy座標にも当てはまります。これは"porth*"
の場合には必ずしも当てはまりません。これらについては、直交順序はエッジによって関連付けられたノード間でのみ保持されます。
- グラフ