0

私が欲しいグラフに関してあなたの助けを本当に感謝します. 開始クラスターから他の多くのクラスターへのラベルを付けたいと思います。これは、複数の行に編成する必要があります。

この瞬間まで、次のコードを書きました。

digraph g{
rankdir="TB";
compound=true;

subgraph cluster0{
label="Cluster 0";
a0->b0;
b0->c0;
a0->c0;
}

subgraph cluster1{
label="Cluster 1";
a1->b1;
b1->c1;
a1->c1;
}

subgraph cluster2{
label="Cluster 2";
a2->b2;
b2->c2;
a2->c2;
}


subgraph cluster3{
label="Cluster 3";
a3->b3;
b3->c3;
a3->c3;
}

subgraph cluster4{
label="Cluster 4";
a4->b4;
b4->c4;
a4->c4;
}

a0->a1 [ltail=cluster0,lhead=cluster1];
a0->a2 [ltail=cluster0,lhead=cluster2];
a0->a3 [ltail=cluster0,lhead=cluster3];
a0->a4 [ltail=cluster0,lhead=cluster4];

}

このコードはクラスターを生成し、それらを適切に相互接続しますが、残念ながらすべてのクラスター (つまり、クラスター 1、2、3、および 4) は同じ行にありますが、クラスター 1 と 2 を 1 つの行に、クラスター 3 と 4 を 1 つの行に配置したいと考えています。クラスタ 1 と 2 を含む行のちょうど下の別の行に移動します。

クラスターが一緒に編成されているにもかかわらず、目に見えないリンクを使用すると、それらは適切に整列されず (列に)、さらに内部ノードのシーケンスがもつれているように見えます (たとえば、次の少し複雑なケースを参照してください。ここでは、4 というラベルの付いたノードを常に残りのノード 1、2、および 3 を対応する順序で左から右に配置する必要があります)

digraph g {
compound=true;
fontname=Helvetica
page="8.5,11";
size="135";
overlap=false;

subgraph cluster0 {
"start-0" [ label = "4" ];
"n1-0" [ label = "1" ];
"start-0" -> "n1-0" ;
"n2-0" [ label = "2" ];
"start-0" -> "n2-0" ;
"n3-0" [ label = "3" ];
"start-0" -> "n3-0" ;
subgraph 00 { rank = same;  "n1-0" "n2-0" "n3-0" }
}
subgraph cluster1 {
"start-1" [ label = "4" ];
"n1-1" [ label = "1" ];
"start-1" -> "n1-1" ;
"n2-1" [ label = "2" ];
"start-1" -> "n2-1" ;
"n3-1" [ label = "3" ];
"start-1" -> "n3-1" ;
subgraph 01 { rank = same;  "n1-1" "n2-1" "n3-1" }
}
"start-0" -> "start-1" [ltail=cluster0,lhead=cluster1];
subgraph cluster2 {
"start-2" [ label = "4" ];
"n1-2" [ label = "1" ];
"start-2" -> "n1-2" ;
"n2-2" [ label = "2" ];
"start-2" -> "n2-2" ;
"n3-2" [ label = "3" ];
"start-2" -> "n3-2" ;
subgraph 02 { rank = same;  "n1-2" "n2-2" "n3-2" }
}
"start-0" -> "start-2" [ltail=cluster0,lhead=cluster2];
subgraph cluster3 {
"start-3" [ label = "4" ];
"n1-3" [ label = "1" ];
"start-3" -> "n1-3" ;
"n2-3" [ label = "2" ];
"start-3" -> "n2-3" ;
"n3-3" [ label = "3" ];
"start-3" -> "n3-3" ;
subgraph 03 { rank = same;  "n1-3" "n2-3" "n3-3" }
}
"start-0" -> "start-3" [ltail=cluster0,lhead=cluster3];
subgraph cluster4 {
"start-4" [ label = "4" ];
"n1-4" [ label = "1" ];
"start-4" -> "n1-4" ;
"n2-4" [ label = "2" ];
"start-4" -> "n2-4" ;
"n3-4" [ label = "3" ];
"start-4" -> "n3-4" ;
subgraph 04 { rank = same;  "n1-4" "n2-4" "n3-4" }
}
"start-0" -> "start-4" [ltail=cluster0,lhead=cluster4];
subgraph cluster5 {
"start-5" [ label = "4" ];
"n1-5" [ label = "1" ];
"start-5" -> "n1-5" ;
"n2-5" [ label = "2" ];
"start-5" -> "n2-5" ;
"n3-5" [ label = "3" ];
"start-5" -> "n3-5" ;
subgraph 05 { rank = same;  "n1-5" "n2-5" "n3-5" }
}
"start-0" -> "start-5" [ltail=cluster0,lhead=cluster5];

subgraph cluster6 {
"start-6" [ label = "4" ];
"n1-6" [ label = "1" ];
"start-6" -> "n1-6" ;
"n2-6" [ label = "2" ];
"start-6" -> "n2-6" ;
"n3-6" [ label = "3" ];
"start-6" -> "n3-6" ;
subgraph 06 { rank = same;  "n1-6" "n2-6" "n3-6" }
}
"start-0" -> "start-6" [ltail=cluster0,lhead=cluster6];
subgraph cluster7 {
"start-7" [ label = "4" ];
"n1-7" [ label = "1" ];
"start-7" -> "n1-7" ;
"n2-7" [ label = "2" ];
"start-7" -> "n2-7" ;
"n3-7" [ label = "3" ];
"start-7" -> "n3-7" ;
subgraph 07 { rank = same;  "n1-7" "n2-7" "n3-7" }
}
"start-0" -> "start-7" [ltail=cluster0,lhead=cluster7];
subgraph cluster8 {
"start-8" [ label = "4" ];
"n1-8" [ label = "1" ];
"start-8" -> "n1-8" ;
"n2-8" [ label = "2" ];
"start-8" -> "n2-8" ;
"n3-8" [ label = "3" ];
"start-8" -> "n3-8" ;
subgraph 08 { rank = same;  "n1-8" "n2-8" "n3-8" }
}
"start-0" -> "start-8" [ltail=cluster0,lhead=cluster8];
subgraph cluster9 {
"start-9" [ label = "4" ];
"n1-9" [ label = "1" ];
"start-9" -> "n1-9" ;
"n2-9" [ label = "2" ];
"start-9" -> "n2-9" ;
"n3-9" [ label = "3" ];
"start-9" -> "n3-9" ;
subgraph 09 { rank = same;  "n1-9" "n2-9" "n3-9" }
}
"start-0" -> "start-9" [ltail=cluster0,lhead=cluster9];
subgraph cluster10 {
"start-10" [ label = "4" ];
"n1-10" [ label = "1" ];
"start-10" -> "n1-10" ;
"n2-10" [ label = "2" ];
"start-10" -> "n2-10" ;
"n3-10" [ label = "3" ];
"start-10" -> "n3-10" ;
subgraph 010 { rank = same;  "n1-10" "n2-10" "n3-10" }
}
"start-0" -> "start-10" [ltail=cluster0,lhead=cluster10];

"n1-0" -> "start-1" [style=invis];
"n1-0" -> "start-2" [style=invis];
"n1-0" -> "start-3" [style=invis];
"n1-0" -> "start-4" [style=invis];
"n1-0" -> "start-5" [style=invis];

"n3-1" -> "start-6" [style=invis];
"n3-2" -> "start-7" [style=invis];
"n3-3" -> "start-8" [style=invis];
"n3-4" -> "start-9" [style=invis];
"n3-5" -> "start-10" [style=invis];

}

ドットを使用してそれを達成する方法はありますか?

よろしくお願いします!

4

1 に答える 1

0

目に見えないエッジをいくつか追加して試すことができます:

c0->a1 [style=invis];
c0->a2 [style=invis];
c1->a3 [style=invis];
c2->a4 [style=invis];

そこから、必要に応じてさらに改善します。

これにより、クラスターが異なるランクに配置されるようになります。

于 2012-05-23T19:49:32.060 に答える