溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python?graphviz畫圖的示例分析

發(fā)布時間:2021-12-27 08:32:32 來源:億速云 閱讀:246 作者:柒染 欄目:開發(fā)技術(shù)

python graphviz畫圖的示例分析,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

前言:

最近要開始做課設來著,題目是哈夫曼編碼,我琢磨著有什么辦法可以打印出一棵樹的結(jié)構(gòu)(其實有一次實驗,就要求打印樹,那個時候就沒能實現(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)境變量之后,還得重啟編譯器 ,否則沒啥用。

加入之后是這樣的:

python?graphviz畫圖的示例分析

2.dot和graphviz

dot

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

graphviz

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

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

在我看來,就是用來畫數(shù)據(jù)結(jié)構(gòu)的樹啊圖啊超級方便。

作圖:

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)

運行結(jié)果:

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

python?graphviz畫圖的示例分析

看完上述內(nèi)容,你們掌握python graphviz畫圖的示例分析的方法了嗎?如果還想學到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI