使用graphviz畫圖

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]
}


--------------------------------------------------------------------------------------------------------------------

詳細介紹各種屬性的官網:  官網介紹的各種屬性

這裏面有一些例子:

使用DOT語言和Graphviz繪圖(翻譯)

使用 Graphviz 生成自動化系統圖



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章