2016-11-14 17 views
0

나는 많은 가지가있는 점 그래프가 있습니다. 스크립트에서 입력하는 동안 출력을 동일한 순서로 유지하는 방법을 모릅니다. 여기그래프 레벨 동일 수직 정렬

이 경우

digraph { 

"/home2/groups/" -> Data; 
CL[label="CL(9+12)"]; 
CA[label="CA(14+5)"] 
Data -> CL; 
Data -> CA; 
CL -> Cl_batch1; 
CL -> Cl_batch2; 
CA -> CA_batch1; 
CA -> CA_batch2; 
CA_batch1 -> {ca_a0 [label="G_pipeline"]}; 
CA_batch1 -> {ca_a1[label="Phe"]}; 
CA_batch1 -> {ca_a2 [label="QC"]}; 
CA_batch2 -> {ca_a0 [label="G_pipeline"]}; 
CA_batch2 -> {ca_a1 [label="Phe"]}; 
CA_batch2 -> {ca_a2 [label="QC"]}; 
Cl_batch1 -> {cl_b0 [label="G_pipeline"]}; 
Cl_batch1 -> {cl_b1 [label="Phe"]}; 
Cl_batch1 -> {cl_b2 [label="QC"]}; 
Cl_batch2 -> {cl_b0 [label="G_pipeline"]}; 
Cl_batch2 -> {cl_b1 [label="Phe"]}; 
Cl_batch2 -> {cl_b2 [label="QC"]}; 
{cl_b3[label="Ge"]}; 
cl_b0 -> cl_b3; 
{cl_b4[label="cfv"]}; {cl_b5[label="combined_Gcfv"]}; {cl_b6[label="combined_cfv"]}; {cl_b7[label="vq"]}; 
{cl_b8[label="batch"]}; 
cl_b3 -> {cl_b4;cl_b5;cl_b6;cl_b7[color=green]}; 
{cl_b4;cl_b5;cl_b6;cl_b7} -> cl_b8; 
{cl_b9_data[label="9wL/woL"]}; 
{cl_b12_data[label="12wL/woL"]}; 
{cl_b21_data[label="21wL/woL"]}; 
{cl_b23_data[label="23(+misc)wL/woL"]}; 
cl_b8 -> cl_b9_data[label="typeA"]; 
cl_b8 -> cl_b12_data[label="typeB"]; 
cl_b8 -> cl_b21_data[label="typeA+typeB"]; 
cl_b8 -> cl_b23_data[label="typeA+typeB"]; 

### CA_batch1 & CA batch2 
{ca_a3[label="Ge"]}; 
ca_a0 -> ca_a3; 
{ca_a4[label="cfv"]}; {ca_a5[label="combined_Gcfv"]}; {ca_a6[label="combined_cfv"]}; {ca_a7[label="vq"]}; 
{ca_a8[label="batch"]}; 
ca_a3 -> {ca_a4;ca_a5[color=green];ca_a6[color=green];ca_a7[color=green]} 
{ca_a4;ca_a5;ca_a6;ca_a7} -> ca_a8; 
ca_a8 -> {ca_a14_data[label="14wL/woL"]}[label="typeA"]; 
ca_a8 -> {ca_a_5_data[label="5wL/woL"]}[label="typeC"]; 
ca_a8 -> {ca_a19_data[label="19wL/woL"]}[label="typeA/typeC"]; 

} 

enter image description here

가, 어떻게 바닥 수준을 주문할 수 있습니다, 내 코드인가? 당신은 내가 순서대로 내 순서를 언급 한 것을 볼 수 있습니다 : 모든 노드가

1) cl_b9_data; 
2) cl_b12_data; 
3) cl_b21_data; 
4) cl_b23_data; 

에서 왼쪽에서 오른쪽으로

cl_b8 -> cl_b9_data[label="typeA"]; 
cl_b8 -> cl_b12_data[label="typeB"]; 
cl_b8 -> cl_b21_data[label="typeA+typeB"]; 
cl_b8 -> cl_b23_data[label="typeA+typeB"]; 

내가 주문을하고 싶은 해당 화살표를 가질 필요가있다. 아무도 조언을 해줄 수 있습니까?

+0

나는 잘 이해하지 못할 수도 있지만 ogther 노드는 어떻습니까? 너 네 명만 언급 한거야? – vaettchen

+0

@vaettchen 예를 들어 나머지 네 개는 임의로 배치 할 수 있습니다. – user3631848

답변

0

노드를 만들 때 순서를 유지하기 만하면됩니다. 생성은 소스 코드에서 노드가 처음 명명 될 때 수행됩니다. Btw 중괄호는 필요하지 않습니다.

[...] 
clo_b9_I [label="9wL"]; 
clo_b12_I [label="12wL"]; 
clo_b21_I [label="21wL"]; 
clo_b23_I [label="23wL"]; 
clo_b9_woL [label="9woL"]; 
clo_b12_woL[label="12woL"]; 
clo_b21_woL[label="21woL"]; 
clo_b23_woL[label="23woL"]; 
[...] 
+0

분기가 컴파일되지 않은 경우 동일한 순서를 유지합니다. 분기 수가 너무 많으면 순서가 변경됩니다. – user3631848

+0

주문을 시행 할 수있는 방법은 거의 없습니다. 특정 조건 하에서는 전혀 영향을 미치지 않습니다. 표준 그래프의 경우 생성 순서가 작동해야합니다. 실패한 예제를 게시하십시오. – stefan

+0

코드를 수정했습니다. 왼쪽 하단에서 볼 수 있습니다. 순서는 내가 작성한 코드와 다릅니다. – user3631848