中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

python?graphviz畫圖的示例分析

發布時間:2021-12-27 08:32:32 來源:億速云 閱讀:255 作者:柒染 欄目:開發技術

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

前言:

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

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

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

1.graphviz安裝與配置

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

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

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

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

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

加入之后是這樣的:

python?graphviz畫圖的示例分析

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畫圖的示例分析的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

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

AI

巨野县| 武功县| 大渡口区| 张家口市| 永和县| 定陶县| 繁昌县| 炎陵县| 宜川县| 邓州市| 新建县| 阜宁县| 阳高县| 贡山| 犍为县| 民乐县| 高淳县| 文成县| 洞头县| 湟源县| 芜湖县| 澄江县| 五台县| 长沙市| 类乌齐县| 黑河市| 上饶市| 绵阳市| 繁峙县| 磐安县| 夏津县| 永仁县| 西吉县| 土默特左旗| 河曲县| 固安县| 怀安县| 姚安县| 闽侯县| 白银市| 隆回县|