python graphviz畫圖詳情

前言:

最近要開始做課設來著,題目是哈夫曼編碼,我琢磨著有什麼辦法可以打印出一棵樹的結構(其實有一次實驗,就要求打印樹,那個時候就沒能實現),偶然遇到瞭一篇博客,有提到graphviz這個庫,我就掃瞭一眼,發現居然可以打印各種形狀和流程圖,直接激動到驚呆。

於是立馬pip install graphviz,庫很快下載,但就無論如何都畫不瞭圖,折騰瞭將近一個小時,才在大佬的一篇博客裡發現,是需要給graphviz添加進環境變量裡…

總之,雖說,出現問題的時候,心態挺崩的,但是,解決問題的那一刻,真的很快樂!

1.graphviz安裝與配置

進入官網下載: https://graphviz.org/download/

(版本基本上不影響使用,隨便一個就可以)

下載之後,會有一個安裝過程,全部next即可,記得 勾選加入PATH !!!

如果沒勾選,記得手動加入環境變量的path裡,否則你就會像我一樣,變得不幸。

而且, 添加完環境變量之後,還得重啟編譯器 ,否則沒啥用。

加入之後是這樣的:

請添加圖片描述

2.dot和graphviz

dot

dot是一種文本圖形描述語言,編寫好的.dot文件可以被機器處理為圖片,通常可以生成.png,.jpg,.pdf等格式。

graphviz

graphvizpython的一個開源庫,dot的各種操作被包括在graphviz中。

graphviz可以用來畫簡單的流程圖。

在我看來,就是用來畫數據結構的樹啊圖啊超級方便。

作圖:

step1:導入graphviz庫

from graphviz import Digraph  # 導入graphviz庫


step:創建一個表

dot = Digraph(name, comment)


添加點

dot.node(name, label)


點之間創建邊

dot.edge(tail_name, head_name, label)


輸出畫的圖

dot.view()


生成圖片文件

print(dot.source) 
render(filename=None, directory=None, view=False, cleanup=False)
# 參數分別為文件名、文件保存路徑、是否用默認程序打開渲染效果、是否在渲染後刪除源文件


樣例

from graphviz import Digraph  # 導入graphviz庫

dot = Digraph("lmy's table", comment='The Test Table')  # 創建一個表

dot.node('A', 'Dot A')  # 添加一個點,點的名稱為'Dot A'

dot.node('B', 'Dot B')

dot.node('C', 'Dot C')

dot.node('D', 'Dot D')

dot.edges(['AD', 'AC', 'BC'])  # 兩點間創建邊

dot.edge('B', 'C', 'test')
# dot.view(),此函數可以實時看到你畫的圖


# 獲取DOT source源碼的字符串形式
print(dot.source)
# // The Test Table
# digraph {
 
#   A [label="Dot A"]
#   B [label="Dot B"]
#   C [label="Dot C"]
#   A -> B
#   A -> C
#   A -> B
#   B -> C [label=test]
# }

# 保存source到文件,並提供Graphviz引擎
dot.render('test-output/lmy.gv', view=True)

運行結果:

可以看到生成瞭一個pdf文件

在這裡插入圖片描述

到此這篇關於python graphviz畫圖詳情的文章就介紹到這瞭,更多相關python graphviz畫圖內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: