我已经为此苦苦挣扎了一段时间,似乎找不到直接的答案。我正在使用 graphviz 中的复合子图,似乎找不到正确的设置组合来强制两个子图相互对齐。
附上一个简单的例子来说明问题......
digraph g {
compound=true;
subgraph cluster_top {
graph [color=black, label="Top", rank=min];
nodeA; nodeB; nodeC
cluster_top_DUMMY [shape=point style=invis]
}
subgraph cluster_service {
graph [color=black, label="Bottom", rank=min];
node1; node2; node3; node4; node5; extra_long_node
cluster_bottom_DUMMY [shape=point style=invis]
}
cluster_top_DUMMY -> cluster_bottom_DUMMY [ style=invis ]
}
这会生成底部子图比顶部子图宽得多的输出。
我真正想要的是确保顶部和底部的宽度始终完全相同。此外,如果有太多节点无法适应可用宽度,则会生成额外的节点行。