graphviz和dot的關係
graphviz 是 graph visualization software的縮寫,是由AT&T開源出來的軟件,它使用dot語言來繪製圖形。所以dot是graphviz下面的一個非常得力的工具。
安裝graphviz
在官網上下載軟件以後,在windowss上面配置環境變量即可使用
使用dot命令繪製圖形的一般格式如下:
dot example.dot -Tpng -o example.png
如何編寫dot文件來繪製圖形
Dot腳本語言語法整理 這篇博客寫的很好
經常使用的節點和邊的一些屬性
shape 設置節點的形狀box 爲方的,circle爲圓 介紹各種shape
label 可以設置節點的標籤,也可以設置遍的標籤,也就是裏面呈現的文字
taillabel 和 headlabel 可以設置放在邊的頭和尾的標籤
dir 設置邊的箭頭指向
color 設置邊和節點的顏色
fontcolor 設置邊和節點中字體顏色
fontsize 設置邊和節點中字體大小
fillcolor 設置節點和邊的填充顏色
rankdir 設置圖的佈局 rankdir=TB是從上到下繪圖,rankdir=LR是設置從左到右繪圖
rank 可以約束不同節點的關係 {rank=same;node1;node2...}可以把節點放在同一層
xlabel 點放置完以後再放置標籤,放置標籤破壞圖形結構,可以在一定程度上解決標籤一直在右邊的問題
--------------------------------------------------------------------------------------------------------------------
使用技巧
使用node[shape=box]可以設置全局的node均爲box
使用edge可以設置全局的邊
定義節點的順序不同,畫圖的效果是不一樣的
--------------------------------------------------------------------------------------------------------------------
我的例子:
digraph pic1{
sex -> sex_female[label="f,<1>"]
sex -> pclass[label="m"]
{rank=same;sex_female;pclass}
pclass -> pclass_1[xlabel="1,<2>", labeljust="l"]
pclass -> embarked[label="2"]
pclass -> pclass_3[label="3,<3>"]
{rank=same; pclass_1;embarked;pclass_3; ranksep=2}
embarked -> embarked_s[xlabel="s,<2>"]
embarked -> embarked_c[label="c,<2>"]
{rank=same;embarked_s;embarked_c}
sex_female[label="1"]
pclass_1[label="0"]
pclass_3[label="0"]
embarked_s[label="0"]
embarked_c[label="1"]
sex[shape=box]
pclass[shape=box]
embarked[shape=box]
}
--------------------------------------------------------------------------------------------------------------------
詳細介紹各種屬性的官網: 官網介紹的各種屬性