dot in.dot -o out.png
建議複雜的圖形使用 HTML-like label
record node 使用
這個可以在 label
中透過 |
去分割,並且使用 {}
作為子分割
digraph G {
graph[rankdir=LR]
node[shape=Mrecord, fontname="consolas"]
subgraph rank1 {
root[label="root1"];
n1[label="<p> parrent | <k> key | <d> degree | <m> mark | {<l> left | <c> child | <r> right } "];
root-> n1:p;
}
subgraph rank2 {
n2[label="<p> parrent | <k> key | <d> degree | <m> mark | {<l> left | <c> child | <r> right } "];
root-> n2:p;
}
subgraph rank3 {
n3[label="<p> parrent | <k> key | <d> degree | <m> mark | {<l> left | <c> child | <r> right } "];
root-> n3:p;
}
n2:r -> n3:l;
n1:r -> n2:l;
}
關於 edge 連接的位置
參見文件 portPos 的方法,如直接設定 attribute headport
, tailport
會發生奇怪的事情
關於節點間隙過小
設定 nodesep
(注意這個不是 node 的 margin)
graph[nodesep=3]
邊與節點連接的縫隙太大
可能使用 HTML-like table 的時候,設定到 margin,但是沒有看到邊框,實際上邊框是 margin 的大小,但 nodesep 太小,誤用 margin 的問題。
問題 lost node
發生在 record 形式的時候,改用
Warning: flat edge between adjacent nodes one of which has a record shape - replace records with HTML-like labels
Graphviz