ノード間の垂直エッジまたは水平エッジのみをドット表示するように強制したい。
私は同様のリクエストを投稿 Dot/GraphVizによるファミリーツリーレイアウト で見つけましたが、私はツリーを扱っていないので、余分なノードを挿入せずに解決策があることを願っています...
次のグラフを作成するとします。
ダイグラフG { splines = ortho A [shape = box] B [shape = box] C [shape = box] D [shape = box] A-> B A-> C B-> D C-> D }
私が得るものはこれです:
しかし、私はこのようなグラフが欲しい:
どうすればこのようなレンダリングを取得できますか?
編集:「スプライン」属性が期待どおりに機能していないようです...何か間違ったことはありますか?
構文は正しいようです。実行すると、(一種の)直交エッジルーティングが表示されます。
どのバージョンがありますか?
直交エッジルーティングは、2010年9月28日以降のGraphvizバージョンでのみ使用できるため、お願いします。すべてのシステムに最新バージョンがパックされているわけではありません。私のシステムでは download を使用して、手動でGraphvizをインストールし、2.26.3(2010年1月26日から)より新しいバージョンを入手しました。
実際のグラフに4つ以上のノードが含まれていると仮定すると、線に曲がりを持たせ、余分な(非表示の)ノードを追加したくない場合は、グラフのnodesep
属性を試してみてください。以下のコードと画像を参照してください。
digraph G {
graph [splines=ortho, nodesep=1]
node [shape=record]
A -> {B, C} -> D
}