2017-08-18 82 views
2

我寫了下面的DOT來生成圖。除了已定義和佈局的節點之外,我還想將一個節點放在左側,另一個節點放在標記爲L的邊的右側,它們應該靠近L,並位於NODE3和NODE6之間。在graph中的DOT中的邊的左側和右側的位置節點

我試着用一些看不見的節點。新節點要麼轉到第一行或第二行,但我希望它們在第一個和第二個之間的新行中。

digraph g { 
ranksep=0.5 
graph [rankdir = "TB"]; 
graph [splines=ortho]; 

node [fontsize = "8"]; 
edge []; 

node0 [label = "{NODE0}" shape = "record" ]; 
node1 [label = "{NODE1}" shape = "record" ]; 
node2 [label = "{NODE2}" shape = "record" ]; 
node3 [label = "{NODE3}" shape = "record" ]; 
node4 [label = "{NODE4}" shape = "record" ]; 

node5 [label = "{NODE5}" shape = "record" ]; 
node6 [label = "{NODE6}" shape = "record" ]; 
node7 [label = "{NODE7}" shape = "record" ]; 
node8 [label = "{NODE8}" shape = "record" ]; 
node9 [label = "{NODE9}" shape = "record" ]; 

node10 [label = "{NODE10}" shape = "record" ]; 
node11 [label = "{NODE11}" shape = "record" ]; 
node12 [label = "{NODE12}" shape = "record" ]; 

{rank=same; node0 -> node1 -> node2 -> node3 -> node4}; 
{rank=same; node5 -> node6 -> node7 -> node8 -> node9}; 
{rank=same; node10 -> node11 -> node12}; 
node1 -> node5; 
node5 -> node3; 
node3 -> node6[label="L"]; 
node7 -> node10; 
node11 -> node8; 
node9 -> node12; 

} 

回答

0

這樣的事情呢?我創建了一個「點」節點,讓新的節點連接到它們的等級中。還擺弄着箭頭,讓你瞭解那裏的可能性。

digraph g { 
ranksep=0.5 
graph [rankdir = "TB"]; 
graph [splines=ortho]; 

node [fontsize = "8"]; 
edge []; 

node0 [label = "{NODE0}" shape = "record" ]; 
node1 [label = "{NODE1}" shape = "record" ]; 
node2 [label = "{NODE2}" shape = "record" ]; 
node3 [label = "{NODE3}" shape = "record" ]; 
node4 [label = "{NODE4}" shape = "record" ]; 

node5 [label = "{NODE5}" shape = "record" ]; 
node6 [label = "{NODE6}" shape = "record" ]; 
node7 [label = "{NODE7}" shape = "record" ]; 
node8 [label = "{NODE8}" shape = "record" ]; 
node9 [label = "{NODE9}" shape = "record" ]; 

node10 [label = "{NODE10}" shape = "record" ]; 
node11 [label = "{NODE11}" shape = "record" ]; 
node12 [label = "{NODE12}" shape = "record" ]; 

nodenew1 [label="new1" shape=record]; 
nodenew2 [label="new2" shape=record]; 

{rank=same; node0 -> node1 -> node2 -> node3 -> node4}; 
{rank=same; node5 -> node6 -> node7 -> node8 -> node9}; 
{rank=same; node10 -> node11 -> node12}; 
node1 -> node5; 
node5 -> node3; 

{ 
rank = same; 
nodenew1 -> nodepoint -> nodenew2 [ arrowhead=none] 
} 

nodepoint [shape=point] 
node3 -> nodepoint [label="L" arrowhead=none]; 
nodepoint -> node6[label="L"]; 

node7 -> node10; 
node11 -> node8; 
node9 -> node12; 

} 

enter image description here

+1

感謝TomServo兩種快速響應加上一個工作的答案。這解決了我現在正在尋找的東西。我需要更多地擴展這個圖表,如果遇到更多問題,我會回來。你刪除了我的第一個絆腳石。 – sof977