この図を生成するために Graphviz を使用しています。
出力が最適ではありません。XZ 線は不必要に XY 線と交差します。Y は X より上にあると思います。doco から多くのオプションを試しましたが、役に立ちませんでした。これは私が期待している種類の出力です:
Graphviz でより最適化された図を作成するにはどうすればよいですか?
注: 同様の図の生成を自動化したいので、上記のシナリオに固有のソリューション (例: X0 -> Y1、Y11 -> X03 などからの見えないエッジ) は役に立ちません。次のようなものを一般的に信頼できる方法を探しています。
- AXB は直線になります。
- Z と相互作用しない場合、Y は AXB より上になります。
- X->Y->X によって、X ノード間に不必要に大きなギャップが生じることはありません。
ドット ファイルの内容は次のとおりです。
digraph G {
rankdir=LR
subgraph cluster_x {
node [style=filled,color=green]
"X.0" -> "X.0.1" -> "X.0.2" -> "X.0.3" -> "X.0.4"
}
subgraph cluster_y {
node [style=filled,color=lightblue]
"Y.1" -> "Y.1.1"
}
subgraph cluster_z {
node [style=filled,color=crimson]
"Z.1" -> "Z.1.1"
"Z.2"
}
A -> "X.0"
"X.0.1" -> "Y.1"
"X.0.1" -> "Z.2"
"X.0.2" -> "Z.1"
"Y.1.1" -> "X.0.2"
"Z.1.1" -> "X.0.4"
"Z.2" -> "Z.1.1"
"X.0.4" -> B
}