これら2つのノードが同じレベルに表示されるようにしたい:
digraph G {
subgraph cluster1 {
label="Local Datacenter";
router1;
Host1;
}
subgraph cluster2 {
label="Remote Datacenter";
router2;
Host2;
}
router1 -> router2;
router2 -> Host2;
router1 -> Host1;
}
rank=same
とrank=min
を使ってみましたが、必要な機能が得られません。
興味深いことに、rankdir=LR
を設定し、ルーターからホストへの2つのエッジをコメント化すると、希望どおりの外観が得られますが、エッジはそのままにしておきます。
ルーター間のエッジを変更するだけです。
router1 -> router2[constraint=false];
constraint
は、ノードのランキングでEdgeを使用する必要があるかどうかを示します。
newrank
グラフ属性(GraphViz 2.30で追加)を使用して、クラスターに属するノードのrank=same
を定義できる新しいランキングアルゴリズムをアクティブにすることができます。
上部に次の行を追加します。
newrank=true;
次の行をクラスター定義の後に追加します。
{ rank=same; router1; router2; }
結果のグラフは次のとおりです。