發現好的工具,如同發現新大陸。有時,我們會好奇,論文中、各種專業的書中那麼形象的插圖是如何做出來的,無一例外不是對繪圖工具的熟練使用。
下載安裝、配置環境變量
intall
windows版本下載地址:http://www.graphviz.org/Download_windows.php
雙擊msi
文件,然後一直next(記住安裝路徑,後面配置環境變量會用到路徑信息),安裝完成之後,會在windows開始菜單創建快捷信息,默認快捷方式不放在桌面。
配置環境變量
將graphviz安裝目錄下的bin文件夾添加到Path環境變量中:
驗證
進入windows命令行界面,輸入dot -version
,然後按回車,如果顯示graphviz的相關版本信息,則安裝配置成功。
基本繪圖入門
打開windows下的graphviz編輯器gvedit,編寫如下的dot腳本語言,保存成gv格式文本文件。然後進入命令行界面,使用dot命令,將gv文件轉化爲png圖形文件。
dot D:\test\1.gv -Tpng -o image.png
- 1
graph
graph使用--
描述關係
graph pic1 {
a -- b
a -- b
b -- a [color=blue]
}
- 1
- 2
- 3
- 4
- 5
digraph
使用->
描述關係
digraph pic2 {
a -> b
a -> b
b -> a [style=filled color=blue]
}
- 1
- 2
- 3
- 4
- 5
一個複雜的例子
digraph startgame {
label="遊戲資源更新流程"
rankdir="TB"
start[label="啓動遊戲" shape=circle style=filled]
ifwifi[label="網絡環境判斷是否 WIFI" shape=diamond]
needupdate[label="是否有資源需要更新" shape=diamond]
startslientdl[label="靜默下載" shape=box]
enterhall[label="進入遊戲大廳" shape=box]
enterroom[label="進入房間" shape=box]
resourceuptodate[label="資源不完整" shape=diamond]
startplay[label="正常遊戲" shape=circle fillcolor=blue]
warning[label="提醒玩家是否更新" shape=diamond]
startdl[label="進入下載界面" shape=box]
//{rank=same; needupdate, enterhall}
{shape=diamond; ifwifi, needupdate}
start -> ifwifi
ifwifi->needupdate[label="是"]
ifwifi->enterhall[label="否"]
needupdate->startslientdl[label="是"]
startslientdl->enterhall
needupdate->enterhall[label="否"]
enterhall -> enterroom
enterroom -> resourceuptodate
resourceuptodate -> warning[label="是"]
resourceuptodate -> startplay[label="否"]
warning -> startdl[label="確認下載"]
warning -> enterhall[label="取消下載"]
startdl -> enterhall[label="取消下載"]
startdl -> startplay[label="下載完成"]
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
和python交互
graphviz強大而便捷的關係圖/流程圖繪製方法,很容易讓我們聯想到機器學習中的Decision Tree
的展示方式。幸運的是,scikit-learn提供了生成.dot
文件的接口,具體操作如下:
在python編輯環境下:
from sklearn.tree import export_graphviz # 導入的是一個函數
# tree表示已經訓練好的模型,即已經調用過DecisionTreeClassifier實例的fit(X_train, y_train)方法
export_graphviz(tree, out_file='tree.dot',
feature_names=['petal length', 'petal width'])
- 1
- 2
- 3
- 4
進入windows命令行界面,cd 切換到tree.dot
所在的路徑,執行
dot -Tpng tree.dot -o tree.png
- 1