ここに2つの可能性があります(この質問も参照してください):
1.unflatten
ユーティリティを使用する
Graphvizは、と呼ばれるツールを提供しますunflatten
。このコマンドラインを使用してグラフを前処理する場合:
unflatten -l 3 wide.gv | dot -Tpng -o wide.png
出力画像は次の図のようになります。これは少し幅が狭く、-l
オプションで遊ぶことができます。
2. `rank =same'と非表示のエッジを使用します
標準的な手法を使用して、自動的にレイアウトされたグラフを希望どおりに見せることができます。
rank=same
サブグラフでノードをグループ化し、どのノードを同じ行に配置するかを定義します
- さまざまなサブグラフがさまざまなランクに表示されるようにするための非表示のエッジ
- いくつ
constraint=false
かのエッジがレイアウトに影響を与える可能性があります
group
直定規を促進するノードの属性。
出力グラフは必ずしもきれいであるとは限りません...
ここに例があります、あなたはおそらくもっとうまくやることができます。また、グラフが動的に生成される場合、これはあまり実用的ではない可能性があります。
digraph G {
nodesep=0.3;
ranksep=0.2;
margin=0.1;
node [shape=rectangle];
edge [arrowsize=0.8];
edge[style=invis];
node[group=a];
2->5->8;
node[group=b];
1->3->6->9;
node[group=c];
4->7->10;
edge[style=solid];
1 -> 2;
1 -> 3;
1 -> 4;
edge[constraint=false];
1 -> 5;
1 -> 6;
1 -> 7;
1 -> 8;
1 -> 9;
1 -> 10;
}