我正在使用 Graphviz 生成此图:
输出不是最优的。XZ 线不必要地穿过 XY 线;我希望 Y 高于 X。我尝试了 doco 的许多选项,但无济于事。这是我期待的输出:
如何让 Graphviz 生成更好的优化图表?
注意:我想自动生成类似图表,因此特定于上述场景的解决方案(例如,来自 X0 -> Y1、Y11 -> X03 或诸如此类的不可见边缘)将无济于事。我正在寻找一种能够普遍信任以下内容的方法:
- AXB 将是一条直线。
- 如果 Y 不与 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
}