32

ノード間の垂直または水平エッジのみを表示するドットを強制したいと思います。

ポストFamily tree layout with Dot/GraphVizで同様のリクエストを見つけましたが、私は木を扱っていないので、余分なノードを挿入せずに解決策があることを願っています...

次のグラフを作成すると:

有向グラフ G {

    スプライン=直交

    [形状=ボックス]
    B [形状=ボックス]
    C [形状=ボックス]
    D [形状=ボックス]

    A -> B
    A -> C

    B -> D
    C -> D

}

私が得るものはこれです:

ここに画像の説明を入力

しかし、私はこのようなグラフが欲しいです:

ここに画像の説明を入力

どうすればそのようなレンダリングを取得できますか?

編集:「スプライン」属性が期待どおりに機能していないようです...私が何か間違ったことはありますか?

4

1 に答える 1

43

あなたの構文は正しいようです。それを実行すると、(ある種の) 直交エッジ ルーティングが得られます。

ここに画像の説明を入力

どのバージョンがありますか?

直交エッジ ルーティングは、2010 年 9 月 28 日以降の Graphviz バージョンでのみ使用できるためです。すべてのシステムに最新バージョンがパックされているわけではありません。私のシステムでは、Graphviz をダウンロードして手動でインストールし、2.26.3 (2010 年 1 月 26 日以降) よりも新しいバージョンを取得する必要がありました。

実際のグラフに 4 つ以上のノードが含まれていると仮定して、線に曲がりを持たせ、余分な (目に見えない) ノードを追加したくない場合は、graphsnodesep属性を試してみてください。以下のコードと画像を参照してください。

digraph G {

    graph [splines=ortho, nodesep=1]
    node [shape=record]

    A -> {B, C} -> D
}

ここに画像の説明を入力

于 2013-04-17T12:35:31.777 に答える