2016-11-14 10 views
0

私は多くの枝を持つドットグラフを持っています。スクリプトの入力中に出力を同じ順序に保つ方法が不明です。ここでGraphviz同じレベル垂直順序

はこの場合

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

、私のコードで、どのように私は下のレベルを注文することができますか?あなたは私が順番に私の注文を述べていることがわかります :

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

私は、すべてのノードは、対応する矢印を持っている必要があります

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

に左から右に順番を持っていると思います。誰か助言してもらえますか?

+0

私はよく理解していないかもしれませんが、ogtherノードはどうですか?あなたは4つだけ言及していますか? – vaettchen

+0

@vaettchenこれは例であり、残りの4つはランダムに配置することができました – 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

関連する問題