Python 五分鐘繪制漂亮的系統(tǒng)架構(gòu)圖:全球熱頭條
Diagrams 是一個(gè)基于Python繪制云系統(tǒng)架構(gòu)的模塊,它能夠通過(guò)非常簡(jiǎn)單的描述就能可視化架構(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è)自己覺(jué)得好看的產(chǎn)品),使用其內(nèi)部自帶的云產(chǎn)品的圖標(biāo),就能簡(jiǎn)單繪制基于某云產(chǎn)品圖標(biāo)的架構(gòu)圖。
(資料圖)
比如下面的代碼,繪制了一個(gè)簡(jiǎn)單的基于數(shù)據(jù)庫(kù)集群的網(wǎng)絡(luò)服務(wù)架構(gòu):
非常非常適合用來(lái)做畢業(yè)論文的架構(gòu)圖繪制,強(qiáng)烈推薦。
1.準(zhǔn)備
開(kāi)始之前,你要確保Python和pip已經(jīng)成功安裝在電腦上,如果沒(méi)有,可以訪問(wèn)這篇文章:超詳細(xì)Python安裝指南進(jìn)行安裝。
(可選1)如果你用Python的目的是數(shù)據(jù)分析,可以直接安裝Anaconda:Python數(shù)據(jù)分析與挖掘好幫手—Anaconda,它內(nèi)置了Python和pip.
(可選2)此外,推薦大家用VSCode編輯器,它有許多的優(yōu)點(diǎn):Python 編程的最好搭檔—VSCode 詳細(xì)指南。
請(qǐng)選擇以下任一種方式輸入命令安裝依賴(lài):1. Windows 環(huán)境 打開(kāi) Cmd (開(kāi)始-運(yùn)行-CMD)。2. MacOS 環(huán)境 打開(kāi) Terminal (command+空格輸入Terminal)。3. 如果你用的是 VSCode編輯器 或 Pycharm,可以直接使用界面下方的Terminal.
pip install diagrams
看到 Successfully installed xxx 則說(shuō)明安裝成功。
Diagrams 使用了 graphviz 作為渲染工具,因此為了順利使用 Diagrams ,還需要下載 graphviz:https://www.graphviz.org/download/
macOS用戶(hù)可以直接brew安裝:
brew install graphviz
2.基本使用與例子
2.1 初始化與導(dǎo)出使用 Diagram 類(lèi)初始化一個(gè)繪圖上下文,這個(gè)類(lèi)接收到的第一個(gè)參數(shù)將會(huì)成為架構(gòu)圖的文件名,而一當(dāng)代碼運(yùn)行完畢,它將會(huì)以該文件名保存(空格會(huì)被下劃線所替代):
此外,它還可以選擇導(dǎo)出的文件格式,在Diagram類(lèi)里增加outformat參數(shù),也可以不以第一個(gè)參數(shù)為文件保存名稱(chēng),增加filename參數(shù)指定名稱(chēng)即可:
with Diagram("Simple Diagram", outformat="jpg", filename="my_diagram")
2.2 節(jié)點(diǎn)類(lèi)型
由于節(jié)點(diǎn)類(lèi)型比較多,我們無(wú)法一一展示出來(lái),所有類(lèi)型的節(jié)點(diǎn)里都可以在官方文檔里找到,比如:
阿里云:https://diagrams.mingrammer.com/docs/nodes/alibabacloudK8S:https://diagrams.mingrammer.com/docs/nodes/k8sAWS:https://diagrams.mingrammer.com/docs/nodes/aws
接下來(lái)以AWS為例子,講解幾個(gè)基本的數(shù)據(jù)流例子:
幾個(gè)操作符:
>>表示從左到右的數(shù)據(jù)流<<表示從右到左的數(shù)據(jù)流- 表示沒(méi)有箭頭的數(shù)據(jù)流還可以用變量賦值的形式簡(jiǎn)化代碼:
可以看到這里箭頭的方向變了,這是因?yàn)镈iagram加了direction參數(shù),TB 表示數(shù)據(jù)流向 top to bottm, 即從上到下,可選的其他參數(shù)還有:LR(左至右)、BT(底至上)、RL(右至左)。
上面的代碼還可以用數(shù)組的形式進(jìn)一步簡(jiǎn)化:
2.3 集群塊使用Cluster 類(lèi) 并用with以上下文的形式,你可以非常方便地生成一個(gè)集群塊:
而且還可以做得相當(dāng)復(fù)雜:
這里代碼很簡(jiǎn)單,但是比較長(zhǎng),后續(xù)還有一個(gè)比較重要的例子,這里就不展示了,有興趣的話可以點(diǎn)擊最下方閱讀原文進(jìn)行查看。
2.4 自定義線的顏色與屬性使用Edge函數(shù),你可以自定義線的顏色與屬性以及備注,比如:
Edge(color="firebrick",style="dashed",label="test")#使用火磚色,線的類(lèi)型為虛線,備注為test
下面是一個(gè)比較復(fù)雜的例子,但是你如果認(rèn)真閱讀了,會(huì)發(fā)現(xiàn)它其實(shí)很簡(jiǎn)單:
如果你喜歡今天的Python 教程,請(qǐng)持續(xù)關(guān)注Python實(shí)用寶典,如果對(duì)你有幫助,麻煩在下面點(diǎn)一個(gè)贊/在看,有任何問(wèn)題都可以在下方留言,我們會(huì)耐心解答的!
點(diǎn)擊下方閱讀原文可以獲取所有代碼和鏈接哦!
Python實(shí)用寶典(pythondict.com)
不只是一個(gè)寶典
歡迎關(guān)注公眾號(hào):Python實(shí)用寶典關(guān)鍵詞: 數(shù)據(jù)分析 還有一個(gè) 非常非常
相關(guān)閱讀
-
Python 五分鐘繪制漂亮的系統(tǒng)架構(gòu)圖:全...
Diagrams是一個(gè)基于Python繪制云系統(tǒng)架構(gòu)的模塊,它能夠通過(guò)非常簡(jiǎn)... -
使用Python批量篩選上千個(gè)Excel文件中的...
點(diǎn)擊上方“Python爬蟲(chóng)與數(shù)據(jù)挖掘”,進(jìn)行關(guān)注回復(fù)“書(shū)籍”即可獲贈(zèng)P... -
面試時(shí),最可怕的就是背調(diào)?_世界最資訊
按理說(shuō),如實(shí)的寫(xiě)自己過(guò)去的經(jīng)歷,沒(méi)啥可怕的,但許多打工人對(duì)背調(diào)... -
國(guó)內(nèi)互卷的電商巨頭們,又要在海外交手...
最近刮起一陣電商出海潮,各大電商巨頭們?cè)诤M鈩?dòng)作頻頻。阿里重新... -
特斯拉上海被曝停產(chǎn)一周,股票暴跌,到...
最近聽(tīng)到一句話,新冠陰性快清零了。其實(shí)特斯拉的股票……也快清零... -
劉強(qiáng)東所怒斥的,真的是PPT嗎? 當(dāng)前視點(diǎn)
四年前,明州事件鬧得沸沸揚(yáng)揚(yáng),劉強(qiáng)東逐漸慢慢淡出人們的視線,他...