python?graphviz畫圖詳情
前言:
最近要開始做課設來著,題目是哈夫曼編碼,我琢磨著有什么辦法可以打印出一棵樹的結構(其實有一次實驗,就要求打印樹,那個時候就沒能實現(xiàn)),偶然遇到了一篇博客,有提到graphviz
這個庫,我就掃了一眼,發(fā)現(xiàn)居然可以打印各種形狀和流程圖,直接激動到驚呆。
于是立馬pip install graphviz
,庫很快下載,但就無論如何都畫不了圖,折騰了將近一個小時,才在大佬的一篇博客里發(fā)現(xiàn),是需要給graphviz添加進環(huán)境變量里…
總之,雖說,出現(xiàn)問題的時候,心態(tài)挺崩的,但是,解決問題的那一刻,真的很快樂!
1.graphviz安裝與配置
進入官網(wǎng)下載: https://graphviz.org/download/
(版本基本上不影響使用,隨便一個就可以)
下載之后,會有一個安裝過程,全部next即可,記得 勾選加入PATH !??!
如果沒勾選,記得手動加入環(huán)境變量的path里,否則你就會像我一樣,變得不幸。
而且, 添加完環(huán)境變量之后,還得重啟編譯器 ,否則沒啥用。
加入之后是這樣的:
2.dot和graphviz
dot
dot是一種文本圖形描述語言,編寫好的.dot文件可以被機器處理為圖片,通??梢陨?png,.jpg,.pdf等格式。
graphviz
graphviz
是python
的一個開源庫,dot
的各種操作被包括在graphviz
中。
graphviz
可以用來畫簡單的流程圖。
在我看來,就是用來畫數(shù)據(jù)結構的樹啊圖啊超級方便。
作圖:
step1:導入graphviz庫
from graphviz import Digraph # 導入graphviz庫
step:創(chuàng)建一個表
dot = Digraph(name, comment)
添加點
dot.node(name, label)
點之間創(chuàng)建邊
dot.edge(tail_name, head_name, label)
輸出畫的圖
dot.view()
生成圖片文件
print(dot.source) render(filename=None, directory=None, view=False, cleanup=False) # 參數(shù)分別為文件名、文件保存路徑、是否用默認程序打開渲染效果、是否在渲染后刪除源文件
樣例
from graphviz import Digraph # 導入graphviz庫 dot = Digraph("lmy's table", comment='The Test Table') # 創(chuàng)建一個表 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']) # 兩點間創(chuàng)建邊 dot.edge('B', 'C', 'test') # dot.view(),此函數(shù)可以實時看到你畫的圖 # 獲取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畫圖內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python人工智能之路 之PyAudio 實現(xiàn)錄音 自動化交互實現(xiàn)問答
關于音頻, PyAudio 這個庫, 可以實現(xiàn)開啟麥克風錄音, 可以播放音頻文件等等。文章介紹了如何使用Python第三方庫PyAudio進行麥克風錄音然后自動播放已經(jīng)合成的語音實現(xiàn)語音交互回答,需要的朋友可以參考下2019-08-08Python xlwings插入Excel圖片的實現(xiàn)方法
這篇文章主要介紹了Python xlwings插入Excel圖片的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-02-02Mac上Python使用ffmpeg完美解決方案(避坑必看!)
ffmpeg是一個強大的開源命令行多媒體處理工具,下面這篇文章主要給大家介紹了關于Mac上Python使用ffmpeg完美解決方案的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-02-02