2014-11-23 29 views
6

tôi đã chấm biểu đồ này và muốn các nút A và D, B và E và C và F để được sắp xếp. Đây là dấu chấm mã liên quan:Graphviz Dot liên kết dọc các nút

digraph{ 

A 
B 
C 
D 
E 
F 

{rank = same; B; C} 
{rank = same; E; F} 

A -> B [label="2", weight=2] 
A -> C [label="0", style=dashed, weight=2] 
B -> C [label="0", style=dashed, weight=2] 
B -> D [label="2", style=dashed, weight=2] 
C -> D [label="0", weight=2] 
D -> E [label="1", style=dashed, weight=2] 
D -> F [label="0", weight=2] 
E -> F [label="0", weight=2] 
F -> A 
} 

Như bạn có thể thấy tôi đã cố gắng để áp dụng trọng lượng để các cạnh, nhưng điều đó không làm việc ra

enter image description here

Trả lời

16

Có thể sử dụng group thuộc tính của các nút để đề xuất căn chỉnh các cạnh giữa các nút của cùng một nhóm theo một đường thẳng.

Khai báo các nút với các thuộc tính nhóm:

A [group=g1] 
{rank = same; B[group=g2]; C[group=g3]} 
D [group=g1] 
{rank = same; E[group=g2]; F[group=g3]} 

Sau đó, chắc chắn tất cả những nút có một (vô hình) cạnh giữa chúng:

edge[style=invis]; 
A -> D 
B -> E 
C -> F 

Tất cả mọi thứ với nhau:

digraph G { 
    A [group=g1] 
    {rank = same; B[group=g2]; C[group=g3]} 
    D [group=g1] 
    {rank = same; E[group=g2]; F[group=g3]} 

    A -> B [label="2", weight=2] 
    A -> C [label="0", style=dashed, weight=2] 
    B -> C [label="0", style=dashed, weight=2] 
    B -> D [label="2", style=dashed, weight=2] 
    C -> D [label="0", weight=2] 
    D -> E [label="1", style=dashed, weight=2] 
    D -> F [label="0", weight=2] 
    E -> F [label="0", weight=2] 
    F -> A 

    edge[style=invis]; 
    A -> D 
    B -> E 
    C -> F 
} 
Các vấn đề liên quan