Graphviz(http://www.graphviz.org/)是一種命令行繪圖程式,能夠直接陳述圖片上的節點、邊、方向等性質,然後自動描繪出的整張圖片。本文將實際使用Graphviz並同時講解箇中的原理。
Graphviz是一個運用廣泛的命令行繪圖軟體,不過說是繪圖軟體,它能繪的圖並不是一般人想像中的漫畫或logo,而是數學意義上的「graph」,比較通俗的說法就是「關係圖」。舉例來說,像是圖1這種圖。
|
▲圖1 Unix家族。Graphviz官網的示範圖片之一。 |
用手畫會很痛苦,而Graphviz可以替使用者搞定。Graphviz提供一套語言,能夠直接陳述圖片上的節點、邊、方向等性質。之後,由它來為你產生整張圖片。
Graphviz能畫的圖片有許多種,可以在官方網站(http://www.graphviz.org/)上面找到更多的範例。
安裝Graphviz
Graphviz支援Windows、Mac OS X、FreeBSD、Solaris、Linux等多種作業系統。你若是Linux使用者,基於這款軟體的名氣,你的套件管理器中幾乎一定會有,從套件庫中安裝吧!倘若真找不到,請到官網下載頁面(http://www.graphviz.org/Download.php),試試原始碼:
若是Windows用戶,請前往這裡下載安裝檔:
http://www.graphviz.org/Download_windows.php
Mac OS X的使用者請往這邊走:
http://www.graphviz.org/Download_macos.php
Graphviz的使用
首先,看看上面的部分。
Graphviz的有好幾種,每種使用方法都完全相同,差別只在於渲染出來的圖片效果不一樣。man中的簡介是這樣寫的:
- dot:渲染的圖具有明確方向性
- neato:渲染的圖缺乏方向性
- twopi:渲染的圖採用放射性佈局
- circo:渲染的圖採用環型佈局
- fdp:渲染的圖缺乏方向性
- sfdp:渲染大型的圖,圖片缺乏方向性。
可以透過man 取得進一步說明。但還是親自使用過比較容易理解。在本文中,凡沒有說明的圖,預設都是以dot渲染出來的。
在Graphviz中,若不指定-T參數,Graphviz並不會自動猜測你想要產生什麼格式,只會以預設格式渲染。
可選格式相當多,包括(但不限於)jpg、png、svg等,全部列表可見官網說明頁(http://www.graphviz.org/doc/Dot.ref)的最下方。
-o可以指定儲存檔案的檔名。如果你不用-o選項指定輸出檔名,Graphviz則會將結果輸出到標準輸出上。
除非用法很特殊,否則這兩個參數,每次都要記得下達才行。
dot語言說明
指揮Graphviz繪圖時,所使用的語言叫作「dot」。下面就來介紹如何使用它。