<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Python 五分鐘繪制漂亮的系統(tǒng)架構圖

          共 1879字,需瀏覽 4分鐘

           ·

          2023-01-03 22:46



          Diagrams  是一個基于Python繪制云系統(tǒng)架構的模塊,它能夠通過非常簡單的描述就能可視化架構,并支持以下6個云產品的圖標:

          AWS、Azure、GCP、K8s、阿里云 和 Oracle 云

          基于Diagrams提供的節(jié)點,你只需要指定一個云產品(實際上選哪個都一樣,我們只需要那個產品相應的圖標,你可以選一個自己覺得好看的產品),使用其內部自帶的云產品的圖標,就能簡單繪制基于某云產品圖標的架構圖。


          比如下面的代碼,繪制了一個簡單的基于數據庫集群的網絡服務架構:


          非常非常適合用來做畢業(yè)論文的架構圖繪制,強烈推薦

          1.準備



          開始之前,你要確保Python和pip已經成功安裝在電腦上,如果沒有,可以進行安裝。

          (可選1) 如果你用Python的目的是數據分析,可以直接安裝Anaconda,它內置了Python和pip.

          (可選2) 此外,推薦大家用VSCode編輯器,它有許多的優(yōu)點

          請選擇以下任一種方式輸入命令安裝依賴
          1. Windows 環(huán)境 打開 Cmd (開始-運行-CMD)。
          2. MacOS 環(huán)境 打開 Terminal (command+空格輸入Terminal)。
          3. 如果你用的是 VSCode編輯器 或 Pycharm,可以直接使用界面下方的Terminal.

          pip install diagrams

          看到 Successfully installed xxx 則說明安裝成功。

          Diagrams 使用了 graphviz 作為渲染工具,因此為了順利使用 Diagrams ,還需要下載 graphviz:
          https://www.graphviz.org/download/

          macOS用戶可以直接brew安裝:

          brew install graphviz

          2.基本使用與例子


          2.1 初始化與導出

          使用 Diagram 類初始化一個繪圖上下文,這個類接收到的第一個參數將會成為架構圖的文件名,而一當代碼運行完畢,它將會以該文件名保存(空格會被下劃線所替代):



          此外,它還可以選擇導出的文件格式,在Diagram類里增加outformat參數,也可以不以第一個參數為文件保存名稱,增加filename參數指定名稱即可:


          with Diagram("Simple Diagram", outformat="jpg", filename="my_diagram")

          2.2 節(jié)點類型

          由于節(jié)點類型比較多,我們無法一一展示出來,所有類型的節(jié)點里都可以在官方文檔里找到,比如:

          阿里云:https://diagrams.mingrammer.com/docs/nodes/alibabacloud
          K8S:https://diagrams.mingrammer.com/docs/nodes/k8s
          AWS:https://diagrams.mingrammer.com/docs/nodes/aws

          接下來以AWS為例子,講解幾個基本的數據流例子:


          幾個操作符:

           >> 表示從左到右的數據流
           << 表示從右到左的數據流
           -  表示沒有箭頭的數據流


          還可以用變量賦值的形式簡化代碼:



          可以看到這里箭頭的方向變了,這是因為Diagram加了direction參數,TB 表示數據流向 top to bottm, 即從上到下,可選的其他參數還有:LR(左至右)、BT(底至上)、RL(右至左)。


          上面的代碼還可以用數組的形式進一步簡化:


          2.3 集群塊

          使用Cluster 類 并用with以上下文的形式,你可以非常方便地生成一個集群塊:



          而且還可以做得相當復雜:


          這里代碼很簡單,但是比較長,后續(xù)還有一個比較重要的例子,這里就不展示了,有興趣的話可以點擊最下方閱讀原文進行查看。

          2.4 自定義線的顏色與屬性

          使用Edge函數,你可以自定義線的顏色與屬性以及備注,比如:

          Edge(color="firebrick", style="dashed", label="test")# 使用火磚色,線的類型為虛線,備注為test

          下面是一個比較復雜的例子,但是你如果認真閱讀了,會發(fā)現(xiàn)它其實很簡單:





          1、一文讓你搞懂 Python 的 pyc 文件

          2、教你一行代碼自動繪制藝術畫 (Discoart)

          3、再見!Python 循環(huán),向量化已超神

          4、7個極其重要的Pandas函數!

          5、那些有趣好玩強大的Python庫


          點擊關注公眾號,閱讀更多精彩內容

          瀏覽 96
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲日韩在线电影 | 成人国产三级 | 亚洲视频在线视频观看视频在线 | 奇米色色网 | 亚洲无码AV在线亚洲有码AV在线精品 |