我希望这两个节点出现在同一级别:
digraph G {
subgraph cluster1 {
label="Local Datacenter";
router1;
host1;
}
subgraph cluster2 {
label="Remote Datacenter";
router2;
host2;
}
router1 -> router2;
router2 -> host2;
router1 -> host1;
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试使用rank=same
和rank=min
,但他们不给我我需要什么.
有趣的是,如果我设置rankdir=LR
并注释掉两个路由器到主机的边缘,它会给我我想要的外观 - 但我想保持边缘不变.
dub*_*bek 59
您可以使用(未记录的?)newrank
图形属性(在GraphViz 2.30中添加)来激活新的排名算法,该算法允许定义rank=same
属于集群的节点.
在顶部添加以下行:
newrank=true;
Run Code Online (Sandbox Code Playgroud)
在群集定义后添加以下行:
{ rank=same; router1; router2; }
Run Code Online (Sandbox Code Playgroud)
这是结果图:
mar*_*pet 32
您可以简单地修改路由器之间的边缘:
router1 -> router2[constraint=false];
Run Code Online (Sandbox Code Playgroud)
constraint
指示是否应该在节点的排名中使用边缘.