2013-01-06 28 views
1

我已閱讀此鏈接 - >Forcing "main line" nodes into a straight line in Graphviz (or alternatives)如何獲得同一行中的框?

儘管使用此 - 我無法得到這個權利。我做錯了什麼?

  • 爲什麼不是節點編號3在相同的水平=高度時,我已經把重量放在與no 2相同?爲什麼節點5不在相同的高度上,因爲沒有使用相同的重量4的喘息時間?

  • 有什麼,爲什麼有一個與盒1相同的左邊距和4

謝謝!

˚F

<graphviz> 

digraph MMM8 
{ 
rankdir=LR 

node [shape=box, width="0.8", height="0.5", fontsize="10"]; 
edge [weight=2] 
     1, 2, 3, 6, 7; 
edge [weight=1] 
     4, 5, Nod1, 8; 

node [shape = box]; 
     1 [label = "111111111111"]; 
     2 [label = "2"]; 
     3 [label = "3"]; 
     4 [label = "4"]; 
     5 [label = "5"]; 
     6 [label = "6"]; 
     7 [label = "7"]; 
     8 [label = "7"]; 
     9 [label = "9"]; 
Nod1 [label="N1", shape=diamond,style=filled,label="",height=.1,width=.1] ; 
{ 
1-> 2[label="C1"] 
2-> 3 
3 -> Nod1 
4->Nod1 
Nod1->5 
5->6 
6-> 7 
5->8 
8-> 9 
9-> 7 

{ 
rank = same; 
1, 4 
} 
{ 
rank = same; 
6,8 
} 

} 
</graphviz> 
+0

您沒有正確使用「weight」 - 這是邊緣屬性,而不是節點。腳本中定義的所有邊都有'weight = 1'。另一方面,'group'是一個節點屬性,可用於graphviz保持邊緣平直。 – marapet

回答

1

你必須創建一個rank=same組和包括要在亞行內的每個節點。

digraph MMM8 
{ 
    rankdir=LR 
    node [shape=box, width="0.8", height="0.5", fontsize="10"]; 

    node [shape = box]; 
    { 
     rank=same; 
     1 [label = "111111111111"]; 
     2 [label = "2"]; 
     3 [label = "3"]; 
     6 [label = "6"]; 
     7 [label = "7"]; 
    } 
    { 
     rank=same; 
     4 [label = "4"]; 
     5 [label = "5"];   
     8 [label = "8"];   
     Nod1 [label="N1", shape=diamond,style=filled,label="",height=.1,width=.1] ; 
    } 

    9 [label = "9"]; 

    1-> 2[label="C1"]; 
    2-> 3; 
    3 -> Nod1; 
    4->Nod1; 
    Nod1->5; 
    5->6 ; 
    6-> 7; 
    5->8; 
    8-> 9; 
    9-> 7; 

} 

如果你想在所有行的節點,那麼你就必須在兩個亞羣合併成一個移動節點9進去。

相關問題