2014-01-17 66 views
1

我希望兩個節點之間的邊緣對稱於水平線。例如,下面的代碼:如何在Graphviz中創建對稱邊?

digraph G { 
    rankdir=LR 
    s [style=invisible] 
    A [peripheries=2] 
    D [peripheries=2] 
    B [peripheries=2] 
    s -> A 
    A -> C [label="1"] 
    C -> D [label="0"] 
    D -> C [label="1"] 
    A -> B [label="0"] 
} 

產生以下圖表:

non-symmetric edges

我寧願CD之間的邊緣看起來更象這樣:

symmetric edges

有沒有辦法讓Graphviz做到這一點?

回答

1

您可以將第三邊,使中間的一個無形的:

C -> D [label="0"]; 
D -> C [style=invis]; 
D -> C [label="1"]; 
+0

後,我接着說:箭頭= none'努力擺脫幻影箭頭。沒有冒犯,但增加不可見的元素來強制佈局的變化看起來有點不方便。我期待用語言來實現這一點。 – SSteve

+1

沒有冒犯:-)我同意你對隱形元素的看法,我寧願忍受第一個圖形而不是添加不可見的邊緣。不幸的是,這是我知道實現這一目標的唯一途徑。帶箭頭的問題可能取決於所使用的graphiz的確切版本 - 我不必添加這個。 – marapet

+0

謝謝。我想我不得不花一些時間來衡量對抗性的不對稱。 – SSteve