我想创建一个graphviz图,其中包含两个包含节点的子图,这些节点链接到另一个图中的其他节点。 有些节点需要彼此水平对齐。
我发现了newrank=true
命令,我用它来实现我描述的目标。
出于某种原因,我发现这种行为非常奇怪:
如果我在一个群集中创建两个节点,并且箭头从一个群集到另一个群集,然后另一个箭头指向另一个群集中的第三个节点,则graphviz将显示两个箭头。
digraph g{
newrank=true;
subgraph cluster_d{
A -> B
}
subgraph cluster_v{
C
}
{rank=same; A, B, C }
B -> C
}
我知道,我可以简单地使用rankdir=LR
并删除rank=same
,但是在一个包含更多节点和子图的较大图表中,我似乎迟早会遇到这个问题。
我刚刚创建了上面的人工示例,以缩小问题范围。
以下是使用中的代码: https://hackmd.io/s/B1NXAiTk7#
为什么Graphviz会在子图之间创建两个箭头,我该如何防止这种情况?
相关:Why is graphviz drawing two arrows, and using a weird order? 但是没有令人满意的答案,我认为我把问题缩小了。