graphviz畫圖軟體介紹及使用感受
阿新 • • 發佈:2018-11-13
1 介紹
一次偶然的機會接觸到了畫圖軟體graphviz,它主要用於畫有向圖、《資料結構》課程裡的資料結構圖等比較方便。它與tikz的比較為:
- tikz可以畫任何種類的圖。因為tikz就相當於你拿著一個畫筆,面對一張空白的紙做畫,各種位置、佈局都要自己控制;
- graphviz擅長於有向圖等。它封裝了底層的佈局,位置關係等,有一些底層的演算法在幫你做這些事情。
所以,我認為在graphviz擅長的領域,使用其畫圖特別方便。我可以說是一個畫圖愛好者,使用過多種多樣的畫圖軟體,每發現一個不免要點評一番,不周之處,敬請原諒。
2 使用初步
graphviz是一個軟體,而要畫圖,你需要使用dot語言1
digraph G {
main -> parse -> execute;
main -> init;
main -> cleanup;
execute -> make_string;
execute -> printf;
init -> make_string;
main -> printf;
execute -> compare;
}
得到的繪圖結果為:
很方便吧!但是你若要想繪製更加豐富的圖形,則需要使用各種各樣的屬性,用來控制結點、邊等的樣式。如下程式碼:
digraph G{
size ="4,4" ;
main [shape=box]; /* this is a comment */
main -> parse [weight=8];
parse -> execute;
main -> init [style=dotted];
main -> cleanup;
execute -> {make_string; printf}
init -> make_string;
edge [ color=red]; // so is this
main -> printf [style=bold,label="100 times"];
make_string [label="make a \nstring" ];
node [shape=box,style=filled,color=".7 .3 1.0"];
execute -> compare;
}
輸出的效果為:
短短的幾行程式碼就可產生豐富的圖形,方便我們版本控制,對圖形進行自動化處理等工作。
3 圖片儲存
繪製好圖片時,可將圖片儲存為各種各樣的格式,如下:
點選layout按鈕,產生圖形:
然後再點選setting,即出現一個對話方塊,
Output File Type
裡可以設定各種圖片格式,如下圖:
- Emden R. Gansner, Eleftherios Koutsofios, and Stephen North. Drawing graphs with dot. 2010. ↩