1

なぜgraphvizはBの右側にCを描画しているのですか?私はそれを次のように見せたい

A
B E
C

代わりは。

digraph  {
    compound=true
    subgraph cluster_1 { a -> b }
    b -> c
    {rank=same b -> e  }
}

代替テキストhttp://grab.by/33m4

4

2 に答える 2

2

グラフの総面積が増えるため、graphvizはこれを最小化しようとします。leftyやneatoなどのパッケージでさまざまなレイアウトユーティリティを使用して、より良い結果が得られるかどうかを確認できます。

于 2010-03-14T17:44:01.533 に答える
2

あなたが探していることができるかどうかはわかりません。

dot が特定のグラフをレイアウトするとき、ランキングのために cluster_1 を単一のエンティティとして扱います。したがって、必要に応じて、cluster_1 のランクは 0 になります。次に、{rank=same b, e} と言うので、e もランク 0 になります。ドットが c を描画すると、c はより高いランク (ランク 1) になるため、描画されます。以下 e. この時点では x 軸のスペースを気にする必要がないため、e のすぐ下に c を描画します。

ノードcを他のすべての下に確実に描画したい場合は、追加できます

{ rank=sink c }

これは...あなたが目指しているものほど見栄えがよくありません。

于 2010-03-16T12:30:34.937 に答える