2010-06-09 30 views
18

Tôi đang cố gắng có một cạnh giữa các cụm trong Graphviz trong đó cạnh không ảnh hưởng đến xếp hạng.Cạnh thẳng giữa các cụm trong Graphviz

này có vẻ tốt đẹp:

digraph { 
    subgraph clusterX { 
    A  
    B 
    } 

    subgraph clusterY { 
    C 
    D 
    } 

    A -> B 
    B -> C [constraint=false] 
    C -> D 
} 

Tuy nhiên khi tôi thêm một nhãn vào C -> D cạnh B -> C cạnh cố gắng để phá vỡ cho biết nhãn (trông xấu xí).

digraph { 
    subgraph clusterX { 
    A  
    B 
    } 

    subgraph clusterY { 
    C 
    D 
    } 

    A -> B 
    B -> C [constraint=false] 
    C -> D [label=yadda] 
} 

Bất kỳ ý tưởng làm thế nào tôi có thể giữ mép B-C thẳng?

Trả lời

26

Cách dễ nhất để đạt được điều này là thêm splines=false vào tệp dấu chấm - điều này buộc vẽ của các cạnh là đường thẳng:

digraph { 
splines=false; 
subgraph clusterX { 
    A; 
    B; 
} 

subgraph clusterY { 
    C; 
    D; 
} 

A -> B; 
B -> C [constraint=false]; 
C -> D [label=yadda]; 
} 

Output:

graphviz output

2

Bạn có thể sử dụng phiên bản này:

digraph G { 
    subgraph cluster_X { 
    A [ pos = "0,1!" ]; 
    B [ pos = "0,0!" ]; 
    } 
    subgraph cluster_Y { 
    C [ pos = "1,1!" ]; 
    D [ pos = "1,0!" ]; 
    } 
    A -> B 
    B -> C[label="yadda"] 
    C -> D; 
} 

Sau đó, bạn sử dụng neato (không chấm)

neato -Tpng -oyadda.png yadda.dot 

Và kết quả là:

alt text http://dl.dropbox.com/u/72629/yadda.png

+0

với neato Tôi không nhận được các hộp cụm nữa. Đúng? – towi

Các vấn đề liên quan