2011-07-18 76 views
3

我是graphviz的新手,我只是想知道如何確定圖形中的相對節點位置。例如,如果我想繪製一個簡單的三角形'abc',其中節點'a'位於頂部,節點'b'和'c'位於底部相同的位置,我應該如何告訴graphviz佈置根據需要節點?控制graphviz(dot2tex)中節點的佈局?

我嘗試以下:

graph G 
{ 
    node [shape="circle"]; 
    edge [lblstyle="auto"]; 

    {rank=min; "a"} 
    a -- b [label = "-"]; 
    a -- c [label = "-"]; 
    {rank=same; "b" "c"} 
    b -- c [label = "+"]; 
} 

但輸出位置的節點「a」和在頂部的同一水平「B」,與節點「C」在底部。

另外,是否可以在同一個圖中並排繪製兩個這樣的三角形(兩者之間有一個很好的適當空間)?如果是這樣,它是如何實施的?

非常感謝。

回答

4

但輸出將頂部的 頂部的節點'a'和'b'放在同一級別上,節點'c'在底部。

我實際上得到了一個頂部,集中在b和c上方(見圖片)。

您的標記,稍作簡化(這是什麼lblstyle?),似乎達到你想要什麼,當與點呈現:

graph G 
{ 
    node[shape=circle]; 

    a -- b [label = "-"]; 
    a -- c [label = "-"]; 
    {rank=same; b -- c [label="+"];} 
} 

graphviz triangle FTW

你用什麼版本的graphviz的嗎?

而且有並排兩個三角形側:

graph G 
{ 
    node[shape=circle]; 
    edge[label="-"]; 


    a -- b; 
    a -- c; 
    {rank=same; b -- c [label="+"];} 

    d -- e; 
    d -- f; 
    {rank=same; e -- f [label="+"];} 
} 

然而,如果事情變得更復雜,可能很難有graphviz的佈局完全相同的一切作爲一個想。這實際上是graphviz的優勢 - 應用佈局算法以避免用戶干預。

+0

我實際上使用dot2tex包:http://www.fauskes.net/code/dot2tex/documentation/。我將上面的構建複製到了LaTeX文檔中,並且它不會生成與您能夠獲得的相同的圖形,相反,它給了我原始文章中描述的圖形。 – skyork

+0

這解釋了lblstyle - 對不起,我對這個軟件包沒有任何經驗。沒關係我的回答... – marapet