2010-08-10 28 views
19

này có thể liên quan đến How to place edge labels ON edge in graphviz: Tôi có đồ thị dưới đây, mà tôi quán tưởng bằng cách sử dụng lệnh dot -Teps g.dot > g.eps:Graphviz: Đặt nhãn cạnh ở phía bên kia

graph triple { 
    node [shape=box]; User; Object; Tag; 
    node [shape=diamond,style=filled]; Triple; 
    { 
     User -- Triple [label = "1"]; 
     Object -- Triple [label = "1"]; 
    } 
    { 
     rank=same; 
     User; 
     Object; 
    } 
    Triple -- Tag [label="n"]; 
} 

Tôi muốn kết quả là đối xứng hơn bằng cách đặt nhãn giữa Người dùng và Người ba ở phía bên trái của biểu đồ.

Trả lời

6

Và đây là cách giải quyết thứ hai sử dụng splines=false và cạnh kép:

graph { 
splines=false; 
node [shape=box]; User; Object; Tag; 
node [shape=diamond,style=filled]; Triple; 
    { 
     User -- Triple [label = "1"]; 
     User -- Triple [label = ""]; 
     Object -- Triple [label = ""]; 
     Object -- Triple [label = "1"]; 
    } 
    { 
     rank=same; 
     User; 
     Object; 
    } 
    Triple -- Tag [label="n"]; 
} 

Output:

alt text

25

Vị trí thủ công của nhãn cạnh không thể được thực hiện với graphviz.

Tuy nhiên, bạn có thể sử dụng headlabel, labeldistancelabelangle thuộc tính:

graph triple { 
node [shape=box]; User; Object; Tag; 
node [shape=diamond,style=filled]; Triple; 
    { 
     User -- Triple [headlabel = "1", labeldistance=2.5, labelangle=20]; 
     Object -- Triple [headlabel = "1", labeldistance=2.5, labelangle=-20]; 
    } 
    { 
     rank=same; 
     User; 
     Object; 
    } 
    Triple -- Tag [label="n"]; 
} 

Output:

graphviz output

+2

Tại sao bạn cần "cấp bậc tương tự" trong ví dụ trên? – Pacerier

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