Graphviz 安裝並使用 (Python)


概述

Graphviz 是一款由 AT&T Research 和 Lucent Bell 實驗室開源的可視化圖形工具,可以很方便的用來繪制結構化的圖形網絡,支持多種格式輸出。Graphviz 輸入是一個用 dot 語言編寫的繪圖腳本,通過對輸入腳本的解析,分析出其中的點、邊及子圖,然后根據屬性進行繪制。Graphviz layout 以簡單的文本語言描述圖形,並以實用的格式制作圖表,如用於網頁的 images 和 SVG ;用於放入在其它文件中或顯示在交互式圖形瀏覽器中的 PDF 和 Postscript 。——可視化圖形軟件 Graphviz

對於 Python 而言,也有一個 Graphviz 庫與該工具對應,使用 Graphviz 庫可以使用 Python 的語法生成 dot 語言繪圖腳本,並調用 Graphviz 工具生成圖片並保存。但是由於 Graphviz 庫並不是獨立工作的庫,它需要連接 Graphviz 工具來聯合工作,也就是說當你需要使用 Graphviz 庫時必須安裝 Graphviz 工具並設置好 Python 調用 Graphviz 工具的接口。

Graphviz 工具安裝

如果你想要了解 Graphviz 工具,你可以進入 Graphviz 官網

在官網中我們可以找到 Graphviz 工具的安裝包,這里以 Windows 系統為例,安裝包連接點我訪問

這 2 個玩意都可以,第一個是安裝包,操作就和安裝其他軟件一樣,不過安裝時要記一下安裝路徑,后面有用。

如果是下載壓縮包的話,也是找個位置解壓,然后記一下文件路徑。

接下來要把 Graphviz 工具的 bin 目錄加到環境變量 PATH 中,像這樣。

接下來測試下是否安裝成功,打開 cmd 命令窗口,輸入命令:

dot -version


如果你看到了 cmd 輸出這堆東西(版本號及相關信息),證明 Graphviz 工具安裝成功。

Graphviz 庫安裝

IDLE

直接在 cmd 中輸入以下命令就行,然后等上一會。

pip install graphviz

安裝完之后,使用 “pip list” 確認下成功了沒。

anaconda

打開這玩意。

輸入命令:

conda install graphviz

等上一會兒,安裝好后打開 anaconda 檢查下。

至關重要的一步

接下來完成以下 2 個設置,Python 才能調用 Graphviz 工具。首先打開 cmd 語句輸入以下命令:

echo process1 = subprocess.Popen(command1,stdout=subprocess.PIPE,shell=True)

接下來去你的 Python 安裝路徑下,找到文件 subprocess.py

打開,找到 Popen(object) 類。

找到這個類的 init 方法,把 shell=False 修改為 shell=True

改好之后,創建個文件,粘貼以下代碼測試下能不能用。

from graphviz import Digraph

dot = Digraph('測試')
dot.node("1","Life's too short")
dot.node("2","I learn Python")
dot.edge('1','2')

dot.view()

如果看到這玩意,說明你的 graphviz 庫可以正常工作了。

基礎用法

當我們使用 Python 的任何庫時,首先都需要把模塊包含進來,使用這句代碼。

from graphviz import Digraph

接下來我們就需要一個對象來作為生成 DOT 腳本的載體,通過這個語句實例化一個圖形對象。

對象 = Digraph('對象名')

node() 方法可以在對象中生成一個結點,語法如下:

對象.node("結點名","結點內容")

edge() 方法可以添加一條邊,語法如下:

對象.edge('結點名1','結點名2')

在經過這些操作后,dot 腳本就會被自動生成,可以在交互式頁面看下具體內容。

當然這些代碼你可以復制出來,然后放到 Graphviz 工具里,也是可以運行的,如果你會 dot 語法可以直接在工具里寫。

然后使用這個代碼就能把圖片保存出來,並查看了。

對象.view(filename="文件名", directory="輸出路徑")

生成結果會是一個 gv 文件保存 dot 腳本,以及一個某種格式保存的圖片。

具備這些就可以使用 Graphviz 庫和 Graphviz 工具,使用 Python 的代碼畫朴素而耐看的拓撲圖了。更多進階用法參考博客——python graphviz的使用(畫圖工具),里面各種參數都介紹得非常詳細。

參考資料

Graphviz
python graphviz的使用(畫圖工具)
python3 graphviz入門教程
Graphviz 畫圖教程(Python)
FileNotFoundError: WinError 2 系統找不到指定的文件 graphviz
可視化圖形軟件 Graphviz


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM