我正在尝试创建一个图表,明确指定许多节点的等级并指定集群。以下代码生成了我想要的类型的图表:
这会生成一张正确的图表,其中"MATH 211"与"MATH 101"处于同一级别,然而graphviz会发出警告。
如果我从year1子图中删除“MATH 211”和“MATH 208”,Graphviz就不再抱怨,但是生成的图形与“MATH 101”在同一等级的簇不再具有相同的等级(为什么会这样...):
是否有任何方法可以重新排列/重新排序我的dot文件以产生第一个图形,但没有任何警告?或者指定某个群集应该位于另一个节点的同一等级?
我应该注意到,此图使用Graphviz 2.26成功编译,但是在Graphviz 2.28上失败...
digraph {
rankdir=LR
subgraph cluster0 {
"MATH 208"
"MATH 211"
graph [rankdir=LR, style="rounded,filled", color=gray]
}
subgraph year1 {
subgraph {
"MATH 100"
"MATH 110"
graph [rankdir=LR, rank=same]
}
subgraph {
"MATH 101"
"MATH 211"
"MATH 208"
graph [rankdir=LR, rank=same]
}
graph [rankdir=LR]
}
subgraph year2 {
subgraph {
"MATH 205"
"PHIL 203"
graph [rankdir=LR, rank=same]
}
graph [rankdir=LR]
}
subgraph year3 {
subgraph {
"MATH 311"
"MATH 312"
"MATH 375"
graph [rankdir=LR, rank=same]
}
graph [rankdir=LR]
}
subgraph year4 {
subgraph {
"MATH 447"
"MATH 412"
graph [rankdir=LR, rank=same]
}
graph [rankdir=LR]
}
"MATH 100" -> "MATH 101"
"MATH 100" -> "MATH 208"
"MATH 101" -> "MATH 205"
"MATH 110" -> "MATH 311"
"MATH 211" -> "MATH 311"
"MATH 110" -> "MATH 312"
"MATH 211" -> "MATH 312"
"PHIL 203" -> "MATH 375"
"MATH 110" -> "MATH 447"
"MATH 211" -> "MATH 447"
"MATH 311" -> "MATH 412"
"MATH 312" -> "MATH 412"
}
这会生成一张正确的图表,其中"MATH 211"与"MATH 101"处于同一级别,然而graphviz会发出警告。
Warning: MATH 208 was already in a rankset, ignored in cluster pruned
Warning: MATH 211 was already in a rankset, ignored in cluster pruned
如果我从year1子图中删除“MATH 211”和“MATH 208”,Graphviz就不再抱怨,但是生成的图形与“MATH 101”在同一等级的簇不再具有相同的等级(为什么会这样...):
是否有任何方法可以重新排列/重新排序我的dot文件以产生第一个图形,但没有任何警告?或者指定某个群集应该位于另一个节点的同一等级?
我应该注意到,此图使用Graphviz 2.26成功编译,但是在Graphviz 2.28上失败...