python架构图教程_Python 五分钟绘制漂亮的系统架构图

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

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

基于Diagrams提供的节点,你只需要指定一个云产品(实际上选哪个都一样,我们只需要那个产品相应的图标,你可以选一个自己觉得好看的产品),使用其内部自带的云产品的图标,就能简单绘制基于某云产品图标的架构图,比如下面的代码,绘制了一个简单的基于数据库集群的网络服务架构:

非常非常适合用来做毕业论文的架构图绘制,强烈推荐。

1.准备

开始之前,你要确保Python和pip已经成功安装在电脑上噢,如果没有,请访问这篇文章:超详细Python安装指南进行安装。如果你用Python的目的是数据分析,可以直接安装Anaconda:Python数据分析与挖掘好帮手—Anaconda

Windows环境下打开Cmd(开始—运行—CMD),苹果系统环境下请打开Terminal(command+空格输入Terminal),准备开始输入命令安装依赖。

当然,我更推荐大家用VSCode编辑器,把本文代码Copy下来,在编辑器下方的终端运行命令安装依赖模块,多舒服的一件事啊:Python 编程的最好搭档—VSCode 详细指南。

在终端输入以下命令安装我们所需要的依赖模块:

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 节点类型

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

阿里云:https://diagrams.mingrammer.com/docs/nodes/alibabacloudK8S:https://diagrams.mingrammer.com/docs/nodes/k8sAWS:https://diagrams.mingrammer.com/docs/nodes/aws

接下来以AWS为例子,讲解几个基本的数据流例子:

几个操作符:

>> 表示从左到右的数据流<< 表示从右到左的数据流- 表示没有箭头的数据流

还可以用变量赋值的形式简化代码:

可以看到这里箭头的方向变了,这是因为Diagram加了direction参数,TB 表示数据流向 top to bottm, 即从上到下,可选的其他参数还有:LR(左至右)、BT(底至上)、RL(右至左)。

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

2.3 集群块

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

而且还可以做得相当复杂:

这里代码很简单,但是比较长,后续还有一个比较重要的例子,这里就不展示了,有兴趣的话可以点击最下方阅读原文进行查看。

2.4 自定义线的颜色与属性

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

Edge(color="firebrick", style="dashed", label="test")# 使用火砖色,线的类型为虚线,备注为test

下面是一个比较复杂的例子,但是你如果认真阅读了,会发现它其实很简单:

如果你喜欢今天的Python 教程,请持续关注Python实用宝典,如果对你有帮助,麻烦在下面点一个赞/在看

,有任何问题都可以在下方留言,我们会耐心解答的!

点击下方阅读原文可以获取所有代码和链接哦!

Python实用宝典 (pythondict.com)

不只是一个宝典

欢迎关注公众号:Python实用宝典

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python可视窗口_Python数据可视

1.显现用到的包Pyecharts 是一个用于生成 Echarts 图表的类库。常规的Echarts 是由百度开源的一个数据可视化 JS 库&#xff0c;主要用于数据可视化。简单来说&#xff0c;Pyecharts是一款将python与echarts结合的强大的数据可视化工具。使用 Pyecharts 可以生成独立的网页&…

用极大似然法估计因子载荷矩阵_[转载]第三十六课         因子分析

第三十六课因子分析因子分析(FactorAnalysis)是主成分分析的推广&#xff0c;它也是从研究相关矩阵内部的依赖关系出发&#xff0c;把一些具有错综复杂关系的变量归结为少数几个综合因子的一种多变量统计分析方法。具体地说&#xff0c;就是要找出某个问题中可直接测量的、具有…

mysql in优化_MySQL的一次优化记录 (IN子查询和索引优化)

这两天实习项目遇到一个网页加载巨慢的问题(10多秒)&#xff0c;然后定位到是一个MySQL查询特别慢的语句引起的&#xff1a;SELECT *FROM (SELECT DISTINCT t.vc_date, t.c_bankno, t.vc_bankacco, t.vc_moneytype, t.en_totalbala, t.en_usablebala, t1.vc_nameinbank, date_f…

创建mysql的表怎么显示00_Mysql sql_mode设置 timestamp default 0000-00-00 00:00:00 创建表失败处理...

往数据库里创建新表的时候报错&#xff1a;[Err] 1067 - Invalid default value for updateTimeDROP TABLE IF EXISTS passwd_reset;CREATE TABLE passwd_reset (id int(11) NOT NULL AUTO_INCREMENT,staffId int(11) DEFAULT NULL,toEmail varchar(50) DEFAULT NULL,token var…

mysql sqlite转换_数据库转换工具(SqliteToMysql)

SqliteToMysql是一款用于SQLITE和MYSQL之间的数据库转换工具。它能够将SQLITE数据转换成MYSQL数据库&#xff0c;让用户自主配置转换条件&#xff0c;满足用户的数据库格式需要。。相关软件软件大小版本说明下载地址SqliteToMysql是一款用于SQLITE和MYSQL之间的数据库转换工具。…

mysql 查看集群状态_MySQL数据库集群正确配置步骤

类型&#xff1a;电子教程大小&#xff1a;8.5M语言&#xff1a;中文 评分&#xff1a;8.3标签&#xff1a;立即下载对MySQL数据库集群进行正确配置的实际操作步骤&#xff0c;以及对其概念的讲述&#xff0c;如果你对其相关的实际操作有兴趣了解的话&#xff0c;以下的文章将会…

oschina mysql limit_MySQL 用 limit 为什么会影响性能?

点击上方“武培轩”&#xff0c;选择“设为星标”技术文章第一时间送达&#xff01;一&#xff0c;前言首先说明一下MySQL的版本&#xff1a;mysql> select version();-----------| version() |-----------| 5.7.17 |-----------1 row in set (0.00 sec)表结构&#xff1a;m…

mysql外键教程_关于MySQL外键的简单学习教程

在MySQL中&#xff0c;InnoDB引擎类型的表支持了外键约束。外键的使用条件&#xff1a;1.两个表必须是InnoDB表&#xff0c;MyISAM表暂时不支持外键(据说以后的版本有可能支持&#xff0c;但至少目前不支持)&#xff1b;2.外键列必须建立了索引&#xff0c;MySQL 4.1.2以后的版…

mybatis mysql 分页sql语句_MySql实现分页查询的SQL,mysql实现分页查询的sql语句(转)...

http://blog.csdn.net/sxdtzhaoxinguo/article/details/51481430摘要&#xff1a;MySQL数据库实现分页查询的SQL语句写法&#xff01;一&#xff1a;分页需求&#xff1a;客户端通过传递start(页码)&#xff0c;limit(每页显示的条数)两个参数去分页查询数据库表中的数据&#…

mysql索引详细介绍简书_Mysql索引介绍

数据库索引&#xff0c;是数据库管理系统中一个排序的数据结构&#xff0c;以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B树。在数据之外&#xff0c;数据库系统还维护着满足特定查找算法的数据结构&#xff0c;这些数据结构以某种方式引用(指向)数据&a…

在mysql中建立聚簇索引_给我一分钟,让你彻底明白MySQL聚簇索引和非聚簇索引...

推荐阅读&#xff1a;吊打面试官&#xff01;MySQL灵魂100问&#xff0c;你能答出多少&#xff1f;MySQL的InnoDB索引数据结构是B树&#xff0c;主键索引叶子节点的值存储的就是MySQL的数据行&#xff0c;普通索引的叶子节点的值存储的是主键值&#xff0c;这是了解聚簇索引和非…

根据从日期控件选定的时间以表格形式显示数据_VB项目开发FlexGrid控件使用讲解...

FlexGrid控件使用介绍大家好&#xff0c;在VB开发管理系统中&#xff0c;FlexGrid控件使用是非常普遍的。用FlexGrid ActiveX控件可以在 Visual Basic的窗体中创建一个电子数据表格&#xff0c;也可称之为网格。FlexGrid ActiveX控件可以在网格中显示任何类型的表格式数据&…

arduino无源蜂鸣器歌曲编码_Arduino加无源蜂鸣器,播放音乐《葫芦娃》

Arduino加无源蜂鸣器&#xff0c;播放音乐《葫芦娃》#define NOTE_D0 -1#define NOTE_D1 294#define NOTE_D2 330#define NOTE_D3 350#define NOTE_D4 393#define NOTE_D5 441#define NOTE_D6 495#define NOTE_D7 556#define NOTE_DL1 147#define NOTE_DL2 165#define NOTE_DL3…

mysql爆内存_线上MySQL数据库机器内存爆掉原因分析与解决

本文主要向大家介绍了线上MySQL数据库机器内存爆掉原因分析与解决&#xff0c;通过具体的内容向大家展现&#xff0c;希望对大家学习MySQL数据库有所帮助。现象&#xff1a;阿里金融某业务的MySQL机器的内存每隔几天就会增长&#xff0c;涨上去后&#xff0c;却不下来。累积后内…

mysql atlas更新问题_Atlas几种常见故障解决(不定期更新)

1)使用atlas却发现“读库闲置&#xff0c;框架还是去主库读写数据”配置完atlas之后&#xff0c;发现使用jdbc框架的话&#xff0c;读库和写库各司其职&#xff0c;但是使用mybatis框架之后&#xff0c;就发现框架的读写都去了主库&#xff0c;把读库放置一边&#xff0c;那么这…

如何更改mysql服务名_技术小百科 |【云小课】数据复制服务如何实现对象名映射...

数据复制服务(Data Replication Service&#xff0c;简称DRS)是一种易用、稳定、高效、用于数据库在线迁移和数据库实时同步的云服务。数据复制服务提供了在线迁移、备份迁移、数据同步、数据订阅和多活灾备等多种功能。数据复制服务支持哪些对象名映射数据复制服务的数据同步功…

python 二维强度图_荐 python数据分析matplotlib库使用之二维图形绘制

本篇内容会在后期不定时更新什么是matplotlibmatplotlib是最流行的python底层绘图库&#xff0c;主要做数据可视化图表。为什么要学习matplotlib能将数据进行可视化&#xff0c;更直观的呈现使数据更加客观&#xff0c;更具有说服力二维图绘制matplotlib库的基本使用之折线图导…

mysql产品优化方案_mysql的优化方案

简介在本文中,主要写一下自己所查阅和理解的mysql优化方案.我的理解是数据库的优化对于我们非专业人员,mysql的优化也没那么复杂了,真的要玩转mysql的话,肯定得需要很多年的经验了.参考链接:优化方案1.搜索引擎的优化mysql搜索引擎用的比较多的有以下三中InnoDBMEMORYMyISAMInn…

python数据爬虫代码_python如何示例爬虫代码

python爬虫代码示例的方法&#xff1a;首先获取浏览器信息&#xff0c;并使用urlencode生成post数据&#xff1b;然后安装pymysql&#xff0c;并存储数据到MySQL即可。python爬虫代码示例的方法&#xff1a;1、urllib和BeautifuSoup获取浏览器信息from urllib import requestre…

kali linux查看网卡_CentOS7.6安装无线网卡驱动|Linux如何安装网卡驱动|Linux如何让配置网卡...

此前提到&#xff0c;Thinkpad E490安装CentOS7.6遇到内核崩溃的问题&#xff0c;解决之后&#xff0c;安装CentOS7.6操作系统成功。安装时发现&#xff0c;系统能够检测到有线网卡&#xff0c;但无法检测到无线网卡&#xff0c;说明CentOS7.6对此无线网卡的支持不足&#xff0…