0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

科技綠洲 ? 來(lái)源:Python實(shí)用寶典 ? 作者:Python實(shí)用寶典 ? 2023-10-21 10:20 ? 次閱讀

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)選擇以下任一種方式輸入命令安裝依賴

  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用戶可以直接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)類型比較多,我們無(wú)法一一展示出來(lái),所有類型的節(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

接下來(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 類 并用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")
# 使用火磚色,線的類型為虛線,備注為test

下面是一個(gè)比較復(fù)雜的例子,但是你如果認(rèn)真閱讀了,會(huì)發(fā)現(xiàn)它其實(shí)很簡(jiǎn)單:

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 模塊
    +關(guān)注

    關(guān)注

    7

    文章

    2713

    瀏覽量

    47485
  • 網(wǎng)絡(luò)服務(wù)

    關(guān)注

    0

    文章

    42

    瀏覽量

    9632
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4797

    瀏覽量

    84694
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    免費(fèi)wifi與云系統(tǒng)的關(guān)系?

    現(xiàn)在消費(fèi)者去任何地方消費(fèi)娛樂(lè)的前提就是店家是否有免費(fèi)的wifi提供上網(wǎng),依托的智能wifi云平臺(tái)管理也隨之慢慢的開(kāi)始成為營(yíng)銷方向。不得不說(shuō),VTache智能wifi云系統(tǒng)的最大特點(diǎn)是能夠在最短
    發(fā)表于 03-27 12:51

    云系統(tǒng)操作演示

    云系統(tǒng)操作演示
    發(fā)表于 07-12 14:42 ?422次閱讀

    云系統(tǒng)如何添加設(shè)備

    云系統(tǒng)如何添加設(shè)備
    發(fā)表于 07-16 09:32 ?353次閱讀

    云系統(tǒng)登錄界面操作演示

    云系統(tǒng)登錄界面操作演示
    發(fā)表于 07-16 09:33 ?454次閱讀

    如何使用Python繪制PDF文件教程詳細(xì)說(shuō)明

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何使用Python繪制PDF文件教程詳細(xì)說(shuō)明。
    發(fā)表于 08-27 11:48 ?12次下載
    如何使用<b class='flag-5'>Python</b><b class='flag-5'>繪制</b>PDF文件教程詳細(xì)說(shuō)明

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

    今天給大家?guī)?lái)繪制“手繪風(fēng)格”可視化作品的小技巧,主要涉及Python編碼繪制,內(nèi)容如下。
    的頭像 發(fā)表于 06-23 11:49 ?2138次閱讀
    怎樣使用<b class='flag-5'>Python</b>去進(jìn)行可視化<b class='flag-5'>繪制</b>?

    Diagrams云系統(tǒng)架構(gòu)繪制工具

    ./oschina_soft/diagrams.zip
    發(fā)表于 05-31 15:05 ?1次下載
    <b class='flag-5'>Diagrams</b><b class='flag-5'>云系統(tǒng)</b><b class='flag-5'>架構(gòu)</b>圖<b class='flag-5'>繪制</b>工具

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

    電子發(fā)燒友網(wǎng)站提供《使用Python繪制LoRa節(jié)點(diǎn)的實(shí)時(shí)數(shù)據(jù).zip》資料免費(fèi)下載
    發(fā)表于 12-22 15:44 ?0次下載
    使用<b class='flag-5'>Python</b><b class='flag-5'>繪制</b>LoRa節(jié)點(diǎn)的實(shí)時(shí)數(shù)據(jù)

    Python-模塊與包

    模塊Python 程序架構(gòu)的一個(gè)核心概念
    的頭像 發(fā)表于 02-16 14:55 ?777次閱讀
    <b class='flag-5'>Python</b>-<b class='flag-5'>模塊</b>與包

    Python來(lái)繪制世界地圖

    Python之所以這么流行,是因?yàn)樗粌H能夠應(yīng)用于科技領(lǐng)域,還能用來(lái)做許多其他學(xué)科的研究工具,繪制地圖便是其功能之一。 今天我們用matplot工具包之一的 mpl_toolkits 來(lái)繪制世界地圖
    的頭像 發(fā)表于 10-17 11:18 ?877次閱讀
    用<b class='flag-5'>Python</b>來(lái)<b class='flag-5'>繪制</b>世界地圖

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

    Diagrams 是一個(gè)基于Python繪制云系統(tǒng)架構(gòu)模塊,它能夠通過(guò)非常簡(jiǎn)單的描述就能可視化
    的頭像 發(fā)表于 10-30 14:18 ?468次閱讀
    <b class='flag-5'>Diagrams</b>:基于<b class='flag-5'>Python</b><b class='flag-5'>繪制</b><b class='flag-5'>云系統(tǒng)</b><b class='flag-5'>架構(gòu)</b>的<b class='flag-5'>模塊</b>

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

    Diagrams 是一個(gè)基于Python繪制云系統(tǒng)架構(gòu)模塊,它能夠通過(guò)非常簡(jiǎn)單的描述就能可視化
    的頭像 發(fā)表于 11-01 09:35 ?428次閱讀
    <b class='flag-5'>Diagrams</b>:基于<b class='flag-5'>Python</b><b class='flag-5'>繪制</b><b class='flag-5'>云系統(tǒng)</b><b class='flag-5'>架構(gòu)</b>的<b class='flag-5'>模塊</b>

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

    Graphviz是一個(gè)可以對(duì)圖進(jìn)行自動(dòng)布局的繪圖工具,由貝爾實(shí)驗(yàn)室開(kāi)源。我們?cè)谏洗?Python 快速繪制畫出漂亮的系統(tǒng)架構(gòu)圖 提到的diagram
    的頭像 發(fā)表于 11-01 10:39 ?2211次閱讀
    <b class='flag-5'>Python</b> 如何一鍵轉(zhuǎn)化代碼為流程圖

    繪制同切圓python代碼怎么運(yùn)行

    繪制同切圓是一個(gè)很有趣的數(shù)學(xué)問(wèn)題,可以使用Python語(yǔ)言進(jìn)行實(shí)現(xiàn)。在這篇文章中,我們將探討同切圓的概念、繪制同切圓的算法和Python代碼的實(shí)現(xiàn)。 同切圓的概念 同切圓是指具有相同圓
    的頭像 發(fā)表于 11-28 15:55 ?1571次閱讀

    基于Python的地圖繪制教程

    本文將介紹通過(guò)Python繪制地形圖的方法,所需第三方Python相關(guān)模塊包括 rasterio、geopandas、cartopy 等,可通過(guò) pip 等方式安裝。
    的頭像 發(fā)表于 02-26 09:53 ?1219次閱讀
    基于<b class='flag-5'>Python</b>的地圖<b class='flag-5'>繪制</b>教程