以下に示すグラフを生成するために、graphviz (ドット) を使用しています。左下隅のノード (赤い楕円) は、そのエッジが隣接するノードのいくつかのエッジと交差するため、不快感を引き起こします。ノードの配置を特定の領域に制限する方法はありますか?

以下に示すグラフを生成するために、graphviz (ドット) を使用しています。左下隅のノード (赤い楕円) は、そのエッジが隣接するノードのいくつかのエッジと交差するため、不快感を引き起こします。ノードの配置を特定の領域に制限する方法はありますか?

非表示の制約を作成して、赤いノードを他のすべてのノードの左側に表示することができます。
redNode -> leftmostNode [style=invis];
前:

後:

@Jannis、これに対する回答にまだ興味がある場合は、実際には個々のノードの配置を制御する方法があります-「pos」属性を使用します。
http://www.graphviz.org/doc/info/attrs.html#d:pos
この例として、次のように書くことができます。
n [pos="3,5!"];
nそれはノードが正確にあることを強制します(3,5)。
ただし、これはレイアウトエンジン「fdp」および「neato」でのみ機能します。
個々のノードの配置を制御する手段を知りません。それを行うには、最終的なグラフがどのように見えるかを知る必要があるため、実際には意味がありませんが、1 つのノードを手動で配置すると、残りのグラフのレンダリング方法が変更されます。
.dotファイルでノードが定義されている順序を変更し、グラフ レベルで属性nodesepと属性を微調整することで、この問題を解決しました。ranksepこれは改良のプロセスです。見栄えがよくなるまで、一度にいくつかの項目を微調整します。
また、グラフを としてレンダリングし、SVGVisio (または別のエディター) にインポートして、気に入らないノードを手動で再配置することもできます。