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