Diagrams 是一個(gè)基于Python繪制云系統(tǒng)架構(gòu)的模塊,它能夠通過非常簡單的描述就能可視化架構(gòu),并支持以下6個(gè)云產(chǎn)品的圖標(biāo):
AWS、Azure、GCP、K8s、阿里云 和 Oracle 云
基于Diagrams提供的節(jié)點(diǎn),你只需要指定一個(gè)云產(chǎn)品(實(shí)際上選哪個(gè)都一樣,我們只需要那個(gè)產(chǎn)品相應(yīng)的圖標(biāo),你可以選一個(gè)自己覺得好看的產(chǎn)品),使用其內(nèi)部自帶的云產(chǎn)品的圖標(biāo),就能簡單繪制基于某云產(chǎn)品圖標(biāo)的架構(gòu)圖,比如下面的代碼,繪制了一個(gè)簡單的基于數(shù)據(jù)庫集群的網(wǎng)絡(luò)服務(wù)架構(gòu):
非常非常適合用來做畢業(yè)論文的架構(gòu)圖繪制,強(qiáng)烈推薦。
1.準(zhǔn)備
開始之前,你要確保Python和pip已經(jīng)成功安裝在電腦上噢,如果沒有,請(qǐng)?jiān)L問這篇文章:超詳細(xì)Python安裝指南 進(jìn)行安裝。如果你用Python的目的是數(shù)據(jù)分析,可以直接安裝Anaconda:Python數(shù)據(jù)分析與挖掘好幫手—Anaconda
Windows環(huán)境下打開Cmd(開始—運(yùn)行—CMD),蘋果系統(tǒng)環(huán)境下請(qǐng)打開Terminal(command+空格輸入Terminal),準(zhǔn)備開始輸入命令安裝依賴。
當(dāng)然,我更推薦大家用VSCode編輯器,把本文代碼Copy下來,在編輯器下方的終端運(yùn)行命令安裝依賴模塊,多舒服的一件事啊:Python 編程的最好搭檔—VSCode 詳細(xì)指南。
在終端輸入以下命令安裝我們所需要的依賴模塊:
pip install diagrams
看到 Successfully installed xxx 則說明安裝成功。
Diagrams 使用了 graphviz 作為渲染工具,因此為了順利使用 Diagrams ,還需要下載 graphviz:
https://www.graphviz.org/download/
macOS用戶可以直接brew安裝:
brew install graphviz
2.基本使用與例子
2.1 初始化與導(dǎo)出
使用 Diagram 類初始化一個(gè)繪圖上下文,這個(gè)類接收到的第一個(gè)參數(shù)將會(huì)成為架構(gòu)圖的文件名,而一當(dāng)代碼運(yùn)行完畢,它將會(huì)以該文件名保存(空格會(huì)被下劃線所替代):
此外,它還可以選擇導(dǎo)出的文件格式,在Diagram類里增加outformat參數(shù),也可以不以第一個(gè)參數(shù)為文件保存名稱,增加filename參數(shù)指定名稱即可:
with Diagram("Simple Diagram", outformat="jpg", filename="my_diagram")
2.2 節(jié)點(diǎn)類型
由于節(jié)點(diǎn)類型比較多,我們無法一一展示出來,所有類型的節(jié)點(diǎn)里都可以在官方文檔里找到,比如:
阿里云:https://diagrams.mingrammer.com/docs/nodes/alibabacloud
K8S:https://diagrams.mingrammer.com/docs/nodes/k8s
AWS:https://diagrams.mingrammer.com/docs/nodes/aws
接下來以AWS為例子,講解幾個(gè)基本的數(shù)據(jù)流例子:
幾個(gè)操作符:
表示從左到右的數(shù)據(jù)流
<< 表示從右到左的數(shù)據(jù)流
- 表示沒有箭頭的數(shù)據(jù)流
還可以用變量賦值的形式簡化代碼:
可以看到這里箭頭的方向變了,這是因?yàn)镈iagram加了direction參數(shù),TB 表示數(shù)據(jù)流向 top to bottm, 即從上到下,可選的其他參數(shù)還有:LR(左至右)、BT(底至上)、RL(右至左)。
上面的代碼還可以用數(shù)組的形式進(jìn)一步簡化:
2.3 集群塊
使用Cluster 類 并用with以上下文的形式,你可以非常方便地生成一個(gè)集群塊:
而且還可以做得相當(dāng)復(fù)雜:
這里代碼很簡單,但是比較長,后續(xù)還有一個(gè)比較重要的例子,這里就不展示了,有興趣的話可以點(diǎn)擊最下方閱讀原文進(jìn)行查看。
2.4 自定義線的顏色與屬性
使用Edge函數(shù),你可以自定義線的顏色與屬性以及備注,比如:
Edge(color="firebrick", style="dashed", label="test")
# 使用火磚色,線的類型為虛線,備注為test
下面是一個(gè)比較復(fù)雜的例子,但是你如果認(rèn)真閱讀了,會(huì)發(fā)現(xiàn)它其實(shí)很簡單:
-
模塊
+關(guān)注
關(guān)注
7文章
2783瀏覽量
49556 -
數(shù)據(jù)庫
+關(guān)注
關(guān)注
7文章
3900瀏覽量
65772 -
python
+關(guān)注
關(guān)注
56文章
4825瀏覽量
86175
發(fā)布評(píng)論請(qǐng)先 登錄
免費(fèi)wifi與云系統(tǒng)的關(guān)系?
如何使用Python繪制PDF文件教程詳細(xì)說明

怎樣使用Python去進(jìn)行可視化繪制?

使用Python繪制LoRa節(jié)點(diǎn)的實(shí)時(shí)數(shù)據(jù)

用Python來繪制世界地圖

Diagrams :基于Python繪制云系統(tǒng)架構(gòu)的模塊

Diagrams:基于Python繪制云系統(tǒng)架構(gòu)的模塊

Python 如何一鍵轉(zhuǎn)化代碼為流程圖

繪制同切圓python代碼怎么運(yùn)行
基于Python的地圖繪制教程

評(píng)論