【Python】1分钟就能制作精美的框架图?太棒啦

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、准备
  • 二、基本使用与例子
    • 1.初始化与导出
    • 2.节点类型
    • 3.集群块
    • 4.自定义线的颜色与属性
  • 总结


前言

在这里插入图片描述

Diagrams 是一个基于Python绘制云系统架构的模块,它能够通过非常简单的描述就能可视化架构,并支持以下6个云产品的图标:

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

基于Diagrams提供的节点,你只需要指定一个云产品(实际上选哪个都一样,我们只需要那个产品相应的图标,你可以选一个自己觉得好看的产品),使用其内部自带的云产品的图标,就能简单绘制基于某云产品图标的架构图。

比如下面的代码,绘制了一个简单的基于数据库集群的网络服务架构:
在这里插入图片描述
在这里插入图片描述
非常非常适合用来做毕业论文的架构图绘制,强烈推荐。

一、准备

开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,可以访问这篇文章:超详细Python安装指南 进行安装。

(可选1) 如果你用Python的目的是数据分析,可以直接安装Anaconda:Python数据分析与挖掘好帮手—Anaconda,它内置了Python和pip.

(可选2) 此外,推荐大家用VSCode编辑器,它有许多的优点:Python 编程的最好搭档—VSCode 详细指南。

请选择以下任一种方式输入命令安装依赖:

  1. Windows 环境 打开 Cmd (开始-运行-CMD)。
  2. MacOS 环境 打开 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

二、基本使用与例子

1.初始化与导出

使用 Diagram 类初始化一个绘图上下文,这个类接收到的第一个参数将会成为架构图的文件名,而一当代码运行完毕,它将会以该文件名保存(空格会被下划线所替代):

在这里插入图片描述
此外,它还可以选择导出的文件格式,在Diagram类里增加outformat参数,也可以不以第一个参数为文件保存名称,增加filename参数指定名称即可:

with Diagram(“Simple Diagram”, outformat=“jpg”, filename=“my_diagram”)

2.节点类型

由于节点类型比较多,我们无法一一展示出来,所有类型的节点里都可以在官方文档里找到,比如:

阿里云: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(右至左)。

上面的代码还可以用数组的形式进一步简化:

在这里插入图片描述

3.集群块

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

在这里插入图片描述
在这里插入图片描述
而且还可以做得相当复杂:
在这里插入图片描述
这里代码很简单,但是比较长,后续还有一个比较重要的例子,这里就不展示了,有兴趣的话可以点击最下方阅读原文进行查看。

4.自定义线的颜色与属性

使用Edge函数,你可以自定义线的颜色与属性以及备注,比如:

Edge(color=“firebrick”, style=“dashed”, label=“test”)
#使用火砖色,线的类型为虚线,备注为test
下面是一个比较复杂的例子,但是你如果认真阅读了,会发现它其实很简单:

在这里插入图片描述
在这里插入图片描述

总结

如果你喜欢今天的Python 教程,请持续关注徐浪老师

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/7623.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用Pytorch实现对比学习SimCLR 进行自监督预训练

SimCLR&#xff08;Simple Framework for Contrastive Learning of Representations&#xff09;是一种学习图像表示的自监督技术。 与传统的监督学习方法不同&#xff0c;SimCLR 不依赖标记数据来学习有用的表示。 它利用对比学习框架来学习一组有用的特征&#xff0c;这些特征…

linux 匿名管道 pipe

专栏内容&#xff1a;linux下并发编程个人主页&#xff1a;我的主页座右铭&#xff1a;天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物&#xff0e;目录 前言 概述 原理介绍 接口说明 pipe 与 fifo的区别 代码演示 结尾 前言 本专栏主…

【K8S系列】深入解析无状态服务

目录 序言 1. 无服务介绍 1.1 优点 1.2 使用场景 1.3 资源类型 1.4 总结 2 使用介绍 2.1 Deployment 使用场景&#xff1a; 2.2 ReplicaSet 使用场景 2.3 pod Pod 资源定义示例 2.4 service 创建一个Deployment&#xff1a; 创建一个Service&#xff1a; 总结…

ChatGPT,让程序员从一片黑暗森林奔向另一片黑暗森林!

几年前看过一个电影&#xff0c;叫做《隐藏人物》&#xff0c;主要讲三位女性在NASA工作时反抗“种族歧视”和“性别歧视”的故事&#xff0c;其中有个情节让我印象极其深刻&#xff1a;NASA计算部门有一群女生&#xff0c;她们的工作是计算飞船轨道&#xff0c;纯手工计算。某…

【算法基础】(一)基础算法 --- 离散化

✨个人主页&#xff1a;bit me ✨当前专栏&#xff1a;算法基础 &#x1f525;专栏简介&#xff1a;该专栏主要更新一些基础算法题&#xff0c;有参加蓝桥杯等算法题竞赛或者正在刷题的铁汁们可以关注一下&#xff0c;互相监督打卡学习 &#x1f339; &#x1f339; &#x1f3…

软件测试,自学3个月出来就是高薪工作?你以为还是2019年以前?

朋友&#xff0c;作为一个曾经从机械转行到IT的行业的过来人&#xff0c;已在IT行业工作4年&#xff0c;分享一下我的经验&#xff0c;供你参考。 讲真&#xff0c;现在想通过培训班培训几个月就进入IT行业&#xff0c;越来越来难了&#xff1b;如果是在2018年以前&#xff0c;…

Spark 算子

目录 什么是Spark rdd算子 算子的分类 Transformation算子 Action算子 转换算子 Value类型 map mapPartitions mapPartitionsWithIndex glom groupBy filter sample distinct coalesce sortBy 双Value类型 intersection union subtract zip K-V类型 par…

【Java基础】-【SpringMVC】

目录什么是MVC&#xff1f;DAO层是做什么的&#xff1f;Spring MVC的执行流程Spring MVC常用注解Spring MVC的拦截器怎么去做请求拦截&#xff1f;其他cookie和session的区别cookie和session各自适合的场景session的工作原理get请求与post请求的区别get请求的参数能放到body里面…

JAVASE基础(一)

这里写目录标题一、javaSE基础1.jdk文档2.代码量统计工具3.文档注释4.反编译工具5.JDK、JRE、JVM&#xff08;java虚拟环境&#xff09;*6.变量命名规则7.变量的作用域8.数据类型9.进制10.反汇编器javap一、javaSE基础 1.jdk文档 Overview (Java Platform SE 8 ) (oracle.com…

stable-diffusion安装和简单测试

参考&#xff1a; https://github.com/CompVis/stable-diffusion 理解DALLE 2&#xff0c; Stable Diffusion和 Midjourney的工作原理 Latent Diffusion Models论文解读 【生成式AI】淺談圖像生成模型 Diffusion Model 原理 【生成式AI】Stable Diffusion、DALL-E、Imagen 背後…

面向对象编程(基础)3:对象的内存解析

目录 3.1 JVM内存结构划分 3.2 对象内存解析 举例&#xff1a; 内存解析图&#xff1a; 面试题&#xff1a;对象名中存储的是什么呢&#xff1f; 3.3 练习 3.1 JVM内存结构划分 HotSpot Java虚拟机的架构图如下。其中我们主要关心的是运行时数据区部分&#xff08;Runtime …

python字符编码

目录 ❤ 前言 文本编辑器存取文件的原理&#xff08;nodepad&#xff0c;pycharm&#xff0c;word&#xff09; python解释器执行py文件的原理 &#xff0c;例如python test.py 总结 ❤ 什么是字符编码? ASCII MBCS Unicode ❤ 字符编码的发展史 阶段一: 现代计算…

vue - vue中混入mixin的使用

vue中mixin混入的使用1&#xff0c;概念2&#xff0c;使用场景3&#xff0c;开始使用4&#xff0c;局部混入和全局混入5&#xff0c;总结1&#xff0c;概念 官方解释&#xff1a; 混入 (mixin) 提供了一种非常灵活的方式&#xff0c;来分发 Vue 组件中的可复用功能。一个混入对…

Python 自动化指南(繁琐工作自动化)第二版:十七、计时、安排任务和启动程序

原文&#xff1a;https://automatetheboringstuff.com/2e/chapter17/ 坐在电脑前运行程序是没问题的&#xff0c;但让程序在没有你直接监督的情况下运行也很有用。您计算机的时钟可以安排程序在某个指定的时间和日期或定期运行代码。例如&#xff0c;你的程序可以每小时抓取一个…

Python 自动化指南(繁琐工作自动化)第二版:十三、使用 EXCEL 电子表格

原文&#xff1a;https://automatetheboringstuff.com/2e/chapter13/ 虽然我们不经常将电子表格视为编程工具&#xff0c;但几乎每个人都使用它们将信息组织成二维数据结构&#xff0c;用公式执行计算&#xff0c;并以图表的形式产生输出。在接下来的两章中&#xff0c;我们将把…

Window10平台下编译Sqlite3.4

1、下载网址&#xff1a;SQLite Download Page 需要下载如下内容&#xff1a; 我这里下载64位的dll 2、我用的vs2019新建一个windows桌面项目&#xff0c;应用程序类型:动态链接库(.dll),空项目&#xff1a; 3、将如下文件复制到工程目录下&#xff0c;然后添加到工程中 添加到…

动力节点老杜Vue笔记——Vue程序初体验

目录 一、Vue程序初体验 前言 1.1 下载并安装vue.js 1.2 第一个Vue程序 1.3 Vue的data配置项 1.4 Vue的template配置项 一、Vue程序初体验 前言 可以先不去了解Vue框架的发展历史、Vue框架有什么特点、Vue是谁开发的&#xff0c;这些对我们编写Vue程序起不到太大的作…

koa开发实践2:为koa项目添加路由模块

nodeJS server-side-developkoa开发实践2&#xff1a;为koa项目添加路由模块上一节&#xff1a;《 koa开发实践2&#xff1a;为koa项目添加路由模块 》| 下一节&#xff1a;《 koa开发实践3&#xff1a;在koa项目中使用 swagger 文档 》作者&#xff1a; 李俊才&#xff1a;…

哪些是真正的全光谱灯品牌呢?推荐五款全光谱护眼灯

所谓全光谱&#xff0c;就是指灯光的色谱成分无限接近太阳光的色谱成分。我们都知道&#xff0c;太阳光不单单只有一束简单的白光&#xff0c;而是有很多种颜色的单色光复合而成&#xff0c;所以它的色彩显色效果非常丰富、真实&#xff0c;这些单色光也成了太阳光的色谱成分。…

浅谈机器学习--聚类

还不了解机器学习&#xff1f;来看&#xff01; 目录 一.聚类 二.k均值聚类算法(k-means) 1.k均值聚类算法的流程 二.k均值算法的改进 1.二分k-means算法 2.k-means算法 3.k-medoids算法 4.Mini Batch k-means算法 三.DBSCAN算法 1.​编辑-邻域 2.核心点和边界点 …