2012-05-23 4 views
0

내가 원한 그래프와 관련하여 도움을 주시면 감사하겠습니다. 나는 시작 클러스터에서 많은 다른 클러스터의 레이블을 가지기를 원했고 여러 클러스터로 구성되어야합니다.GraphViz - 여러 줄로 된 클러스터 클러스터

나는 다음과 같은 코드를 작성했습니다 지금이 순간까지

:이 코드는 내 클러스터를 생산하고 적절하게 상호 연결

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]; 

} 

있지만, (4 즉, 클러스터 1,2,3 등)에 불행히도 모든 클러스터됩니다 같은 행, 나는 클러스터 1과 2가 하나의 행에 있고 클러스터 3과 4가 클러스터 1과 2를 포함하는 행 바로 아래에있는 다른 행에 있기를 원한다.

클러스터는 보이지만 함께 조직되면, 그것들은 (열에서) 제대로 정렬되지 않고 내부 노드 시퀀스가 ​​복잡하게 보입니다 (예제는 내가 왼쪽에서 오른쪽으로 나머지 노드 1, 2, 3은 대응하는 순서로 배치해야 위)에 항상 4로 표시된 노드를 싶습니다 약간 더 복잡한 경우를 다음

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]; 

} 

이 있습니까 어떤 방법으로 도트를 사용하여 그것을 달성 할 수 있습니까?

미리 도움을 주셔서 감사합니다.

답변

0

당신은 어떤 보이지 않는 가장자리 추가하여 시도 할 수 :

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

를하고 필요한 경우 더 개선하기 위해 거기에서 이동합니다.

이렇게하면 클러스터가 다른 순위에 배치됩니다.

+0

친절하게 답변 해 주셔서 감사합니다. 저에게 추가 지원을 제공 할 수 있기를 바랍니다. –

관련 문제