如何强制graphviz始终生成相同的布局?
给出一个图表:
digraph {
subgraph clusterA {
subgraph clusterB {
"B.001"
"B.002"
"B.003"
"B.004"
}
subgraph clusterC {
"C.001"
"C.002"
"C.003"
}
}
subgraph clusterD {
subgraph clusterE {
"E.001"
}
subgraph clusterF {
"F.001"
"F.002"
"F.003"
}
subgraph clusterG {
"G.001"
"G.002"
}
}
subgraph clusterH {
"H.001"
}
"G.002" -> "F.003"
"F.001" -> "C.003"
"G.002" -> "F.002"
"G.002" -> "D.001"
}当我将其传递给dot时,它有时会生成如下布局的结果:

有时就像这样:

显然,第一个看起来要好得多,我希望graphviz坚持使用这个。
我试图通过fdp和unflatten传递我的图形,但是它没有改变任何东西。
发布于 2018-03-16 09:27:30
我尝试了很多不同的在线和cli渲染解决方案。除了你的第二个输出,我看不到其他的输出。但如果您更喜欢第一个,只需交换ClusterB和ClusterC的顺序即可。
digraph {
rankdir=TB
subgraph clusterA {
subgraph clusterC {
"C.001"
"C.002"
"C.003"
}
subgraph clusterB {
"B.001"
"B.002"
"B.003"
"B.004"
}
}
subgraph clusterD {
subgraph clusterE {
"E.001"
}
subgraph clusterF {
"F.001"
"F.002"
"F.003"
}
subgraph clusterG {
"G.001"
"G.002"
}
}
subgraph clusterH {
"H.001"
}
"G.002" -> "F.003"
"F.001" -> "C.003"
"G.002" -> "F.002"
"G.002" -> "D.001"
}

https://stackoverflow.com/questions/49276026
复制相似问题