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
graphviz
是python
的一個開源庫,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!
推薦閱讀:
- 運籌學-Python實現圖論與最短距離
- Python機器學習之決策樹
- python 字典生成樹狀圖的實例
- python sklearn 畫出決策樹並保存為PDF的實現過程
- pytorch 權重weight 與 梯度grad 可視化操作