2015-05-19 116 views
0

我有一個定向的非循環圖,我試圖使用Graphviz的dot將其可視化。默認情況下,它是從上到下排列的。Graphviz:禁止水平邊緣,始終顯示垂直方向

通常,所有有向邊的頭都低於尾巴。但在某些情況下,它們被繪製爲水平直線部分,即頭部和尾部處於相同的水平。在我的情況下,這發生在我定義子圖簇之後。

是他們的方法來禁止這個,並強制它總是位置節點,以便箭頭指向「向下」?

樣品源:

digraph { 
    rankdir=TB; 
    subgraph cluster_1 { "8"; "7"; "9"; "11"; "10" } 
    subgraph cluster_2 { "3"; "4"; "5"; } 

    "1" -> "3"; 
    "2" -> "5"; 
    "3" -> "6"; 
    "3" -> "5"; 
    "2" -> "8"; 
    "2" -> "4"; 
    "2" -> "3"; 
    "2" -> "6"; 
    "2" -> "7"; 
    "1" -> "8"; 
    "7" -> "8"; 
    "4" -> "6"; 
    "6" -> "10"; 
    "3" -> "11"; 
    "7" -> "10"; 
    "7" -> "6"; 
    "1" -> "2"; 
    "6" -> "5"; 
    "7" -> "9"; 
    "7" -> "5"; 
    "4" -> "5"; 
    "6" -> "8"; 
    "3" -> "4"; 
    "10" -> "11"; 
    "4" -> "11"; 
    "3" -> "8"; 
    "8" -> "9"; 
    "6" -> "9"; 
    "9" -> "10"; 
    "3" -> "10"; 
    "3" -> "7"; 
} 

回答

1

這種行爲是由固定內的節點等級的簇引起的。來自外部邊緣的「強制」水平拉動節點,但對等級沒有影響。

您必須避免羣集或插入不可見的節點和邊緣。

表示秩修復

digraph { 
    subgraph cluster_1 { 
     1 
     3 
    } 
    1 -> 2 
    2 -> 3 
} 

enter image description here

的最小例子