DOT
の言語でGraphViz
、依存関係図を表現しようとしています。コンテナ内にノードを配置し、ノードやコンテナを他のノードやコンテナに依存させる必要があります。
コンテナーを表すために使用していますsubgraph
。ノードのリンクは問題なく機能しますが、サブグラフを接続する方法がわかりません。
cluster_1
以下のプログラムでは、矢印を使用して接続できる必要がありますcluster_2
が、試した方法ではクラスターを接続する代わりに新しいノードが作成されます。
digraph G {
graph [fontsize=10 fontname="Verdana"];
node [shape=record fontsize=10 fontname="Verdana"];
subgraph cluster_0 {
node [style=filled];
"Item 1" "Item 2";
label = "Container A";
color=blue;
}
subgraph cluster_1 {
node [style=filled];
"Item 3" "Item 4";
label = "Container B";
color=blue;
}
subgraph cluster_2 {
node [style=filled];
"Item 5" "Item 6";
label = "Container C";
color=blue;
}
// Renders fine
"Item 1" -> "Item 2";
"Item 2" -> "Item 3";
// Both of these create new nodes
cluster_1 -> cluster_2;
"Container A" -> "Container C";
}
ベストアンサー1
DOT ユーザー マニュアルには、クラスター間にエッジがあるクラスターを含むグラフの例が次のように示されています。
重要: 最初の
compound=true
ステートメントは必須です。
digraph G {
compound=true;
subgraph cluster0 {
a -> b;
a -> c;
b -> d;
c -> d;
}
subgraph cluster1 {
e -> g;
e -> f;
}
b -> f [lhead=cluster1];
d -> e;
c -> g [ltail=cluster0,lhead=cluster1];
c -> e [ltail=cluster0];
d -> h;
}
...ノードとクラスター間のエッジ: