这里啊,我用了一个 proloat, a c f, 还有这样一 prolot 一个 p a c f, 这样我就可以把我的一个 a c f, 还有这样一个 p a f, p a c f 的一个图画出来了吧,那上面呢,就是我的一个 a c f 的结果,然后它是有些阴影的吧,阴影表示嘛,阴影表示着我们的一个置信区间嘛, 在这里啊就可以看出来了啊,不同的一个接数,他的一个字相关性的一个变化情况是长什么样子的,然后我们之前说一件什么事,我们是不是说我要选一个批值,还要选一个 q 值出来啊?那这个怎么选呢啊?咱们看完图就给大家来说这个事, 那这个下面就是一个 p 的 a c f 啊,在这里我们也可以看出来这样一个接触对我的一个相关系数的一个影响是多大的吧。然后接着咱们来说有了这两个值之后啊,我们就可以去啊进行一个模型的确定了,在这里呢就是关于我 这个偶然模型啊,我需要 p, 还有 d, 还有这样一个 q d 呢,我们重点观察就可以了。然后这个 p 啊,还有这个 q, 他俩来说啊,就是有这样两种说法,就是我们现在是通过这个 acf 和 pacf 这样两个结果来去看,去看呐,这个 p 和 q 是取多少的? 对于咱们这个 ar 模型啊,咱们这个字汇为模型, ar 模型的时候需要我们观察什么?需要主要我们观察这个 p a c f, 我们要看一下这个 p a c f 啊,他在多少接后是结尾的啊,结尾什么意思啊?就是落到我们的一个直径区间内, 那咱们来看一下吧,就是我的一个啊 ar 模型,然后它是看的 p a c f 这个东西,这是 p a c f, 然后这是第一节,这是第二节,所以说啊,第二节就落到了我的一个直线圈上吧,所以说我的一个 q 值取二是不是就可以了?这就是 我的一个呃, m a 模型啊,这是不是?这是我的一个 ar 模型,然后下面呢还有一个 m a 吧,咱们的一个移动平均,移动平均它是看什么?它是看 a c f, a c f 呢?它是一个 q 啊,它是一个 q 结结尾的,那这个 q 值取什么呢?咱们再来看我的一个 a c f, a c f 啊,第几阶落到了个直径区间啊?咱们数出来,然后直接把这个值啊传进来,当成我的一个,嗯, q 值就可以了。那这个就是说我们的一个 a c f 和 p c f 是用来做什么的?是来帮助我们进行一个模型的选择。当我们进行模型选择的时候啊, 尤其是这个 a r 还有 m a 他俩选择啊,主要是靠这两个 a c f 还有 p a f, p a c f 指标对于这个 p 选择要取什么,什么样,哪个 p 接的值啊?在 a c f 上他是衰减趋于零了,在那个 p a c f 上他是进 进行了一个结尾啊,那我们就把这个 p 值拿出来,那对于 m 模型来说呢,观察那个图在哪个接的时候啊?结尾了,并且在另一个图上他是区域零了,这样呢,我们就可以啊,把咱们的一个 p 值还有 q 值给他拿出来。 p 值和 q 值拿出来之后啊,相当于是咱们一会要建立模型的参数就确定好了,这个参数啊需要我们自己的先去把这个图画出来, 通过这个图呢,我们可以自己的进行一个指定,这是啊,其中一种方法,还有种方法就是如果说你这个数据的一个接数啊,可以设置的比较小的话,我们也可以一个个去尝试啊,一会再给大家画一下,怎么样去便利啊?求一个比较好的一个切数,还有这样一个评估的方法的, 嗯,这个咱们接着接着拿这个来说吧,这个就是刚才来说的啊,咱们的一个 p 啊和这个 q 怎么去去确定 p 呢 呢?是看我的一个 p, a c f 啊,这下面就是我的一个 p, a c f 在我的一个第几阶上,我们来看这块是不是就可以了,一阶之后他的一个就是落到我的直径区间上了吧,所以说这个暂时取一也是可以的。然后呢,对于上面这个来说啊,对于咱们这个 a c f 来说,我来看 a c f 是决定我的一个 q 值吧, 看一下我的一个 q 值啊,什么样情况下是比较合适呢?是不是当我的一个七减这个这个过后,我们再取是不是就可以了, 因为啊,在我当前这个阶下,我给他画下来吧,在我当前这个阶下是不是说,嗯,他右边啊,就是都是剁到我一个直径圈上了吧,这是我低点要求。我们来看 这个东西是一个对我的 acr 来说,他是一个 q 结后要进行一个结尾吧, q 结后我们来看这块进行了一个结尾吧,这块中间额外的冒出一些点,这些咱们不用管啊,可能有有一些就是奇异值啊,奇异 值对我的影响不是太大,咱们就可以不用管少部分的棋值点这块是不是说它 q 结结尾了,因为这就是 q 结之后都落在了我一个自信区间上,然后呢,并且它不光要保证 q 结结尾吧,还要保证什么?在 p a c f 上它趋近于零了吧,衰减。 我们再来看,我画到之后,是不是说他在 p a c f 之后再接之后啊,他要衰减为零了,基本上,所以说啊,当我们进行一个 a r 还有 ma 的一个选值的时候,我们就要考虑这样两个东西 p 的怎么选择。 p 的时候我们要看 a c f 的值啊,时候他是趋于零,然后 p a c f 时候他进行了一个结尾, 那 q 值呢? q 值啊,在 a c f 上进行结尾,在 p a c f 上进行趋近于零啊,这样东西听起来啊,反正是比较绕,但时候呢,大家啊,实际的把这个表格拿过来,拿着这个表格啊,咱们对照着我的一个 a c f 还有 p c p a c f 图啊去看就比较合适了, 因为这两个图啊都比较大,所以说我就没放到一个 ppt 上,放一个上面放不开,然后不太好看,所以说到时候大家还得辛苦一下,就是到时候对照着我们这个表格去看一下,什么样的一个 p, 还有什么样的一个 q 啊,能够满足我这样的一个要求, 满足我这个要求,我就把当前的 p 和当前的 q 分别给他拿出来,拿出来之后啊,咱们的一个参数就给他确定好了, 然后我们这个二维码模型啊,将我们的流程看,其实啊,咱们就是现在都已经说完了,给大家第一步我们是进行一个平稳化吧,叉分确定 d, 然后呢第二步,什么第二步啊?我要进行一个结束的确定,看一下 a c f 啊和 p a c f 的一个值。第三步呢,第三步啊,直接调这个模型就可以了,这就是我们用二维码,二维码进行建模的一个流程,是长什么样子的,然后呢?嗯,咱 接着拿这个代码先往下说啊,咱们说到哪咱们就继续去讲哪,我看一下啊,下面又做一件什么事,下面就是说当我去统计他这个字相关系数的时候啊,嗯,一方面我可以画这样一个 acf 的图出来,另一方面呢,就是你想把他这个结果啊,看起来更直观一些。你可以画这样一个三点图啊,就是我们来看, 这是我的一个体检一阶和原始数据的一个三点图,这是我体检二阶,这是体检三阶,我们就可以把不同阶的一个数据拿过来,相当于是一个维度了吧, 多了一个维度跟我原理数据啊,做这样一个对比。然后呢,我可以把它的一个相关系数啊,可以的算出来分别是等于多少的。其实呢,这些值啊,跟我们上面值啊算出来的值都是一样的。这回呢,我就把啊,只不过说把它换成一个三点图,换成一个三点图啊,是看起来更清晰一些吧,如果说你想深入的分析数据的时候啊,你也可以 把这样一个散点图啊给他画出来,但是如果说你只想进行这样一个建模操作啊,我们就直接选这样一个合适值就可以了,用我的一个在知音圈上啊,找出来这样一个关系,依照我的表格选一个最好的 p 和最好的 q 就完事了。 但是咱们现在啊说这个选 p 和选 q 啊,只是通过咱们这样两个图,其实呢还不太,就是还有一些误差导因因素啊,可能导致我们 plq 选的不准。一会带大家来说一个,就是咱们用一个便利的方法换一个热度图,那个是更直接一些的。 然后呢,我们还可以画这样的图啊,就是在这个图当中我画了很多的一个 saoplot, 在 saoplot 当中啊,不同 saoplot 我指定不同的一个维度。第一个图啊,我就画原始的一个数据。第二图呢,画它的一个直方图。第三个图啊, a c f p a c f, 我们也可以把它画在一起上面啊,这个就相当于是一个模, 到时候大家用的时候只需要干什么,只需要是说把我们自己的数据传进来就可以了,需要改的东西啊很少啊,只需要把你自己的一个啊值放下来,自己的数据放下来,就可以把这样一个色图画出来,用这四个图啊来进行一个分析还有评估啊,都是蛮方便的。
粉丝1366获赞1943

嗨,大家好,今天给大家来一个分享拍散,我们绘制一个香型图图,试一下北京二零一九年的天气中温度的分布。下方这个图呢就是绘制图的结果, x 轴呢是四个季度,分别是 q 一、 q 二、 q 三和 q 四。这个图呢就画了四个的象形图,分别是每个季度的温度分布。这里先简单介绍一下这个盒子什么意思,在这象形图中呢,有一个盒子中间这条线是这个温度分布的中位数, 而下方这个盒子边缘呢是百分之二十五的分位数,上方呢是百分之七十五的分位数。 这个盒子外部还伸出两条线叫做核须。然后呢有一个上边缘和 下边缘,相信图认为处于这两个线之间,这个温度呢是正常的,在他们之外是异常直, 比如说这里就有异常值,他代表什么意思呢?就是第二季度出现了,有一天的温度跟大部分的天气的温度是不一样的,有点偏低了,并且从这头我们也看到整体四个季度的温度是逐渐升高,然后又降低的。 接下来我们就来演示一下这个图是怎么绘制的,依然是打开咱们拍摄的开发神器,就不太浓的不可。 首先呢,我还是来继续介绍一下相信图是什么东西。相信图英文名叫做 box plot, 又称为何须图、合适图,或者说相信图,它是一种用作显示一组数据 分散情况的统计图,一个象形图,他有哪些元素来组成呢?就是刚才我给大家介绍一下,这里我更加详细的来说一下。 首先对一组数字来说呢,我们需要先将其从小到大的进行排序,然后呢计算图中的一些元素,第一个元素就是中位数,这个中位数啊跟平均数是不一样的,中位数是取中间位置那个数字, 这条线中位数我们就能画到这盒子的中间,他本身呢也叫做百分之五十的分位数,他的名字叫 q 二, q 呢就是分位的意思, 而他下方是百分之二十五的封印数,我们叫做 q 一,意思呢就是百分之二十五这个位置的数字。然后同样的在中文数的上方,我们算出 q 三,就是百 百分之七十五的分位数,由这三条线我们画了一个盒子,就是这个箱子的意思。然后呢我们算出来一个值叫做 iq r, 它的值就是 q 三,减去 q 一,意思就是说这一段的长度。 iq r, 它是一个英文缩写,是分位数的范围, 这个数值有什么用呢?就是计算这个上边缘和下边缘的下边的数值来等于 q 一,就这个数值减去一点五倍的 iq r, 也就是说这个位置他长度呢是一点五倍的 iq r, 而相应的上方上边缘呢是 q 三,就这个值加上一点五倍的 iq 二,也就是说这条线呢是一点五倍的 q 二长度。这样的话,这个相信图主要元素就画完了,而其中这条线呢,就有点和虚, 所以说又叫做核虚图。另外还有个知识,一个数字如果大于上边缘或者说小于下边缘的话,我们称其为异常值,意思就是说我们认为他已经跑出了一个正常的范围,这就是这个相应图元素的组成。 一个象形图,他什么价值呢?有三个。首先我们可以直观明亮的识别出数据中的异常值, 就是刚才提到的大于上面圆,小于下边圆就是一张纸。第二个利用镶线图可以很明显的判断数据的偏太和伪重,什么意思呢?一般来说这个盒子不会是位于正中间的, 他往往会偏下或者偏上,那么我们就能看到这个数据的分布是偏小还是偏大的。第三个,干部 画一个多个数据的象形图的时候,就能够比较他们的数据的分布形状,相互进行对比。接下来我们进行演示, 本次的目标呢就是视频的开头,我想对比一下北京二零一九年天气数据中四个季度温度的分布的对比,总共分为四个步骤,读取北京天气的数据, 然后呢做一些数据的处理,包含温度变成数字以及添加季度这一列。最后呢点入 c boar 进行绘图。首先我们用几个包, aimport, pandas 和 c boar。 然后呢 s s 赛的样式以及他的图的尺寸大小运行, 我们进入第一步读取北京天气数据,方法呢就是 pd 点 red csv 传入这 ccv 的路线运行。 我们看一下前三行,我们看到包含年月日以及这一天的最高温度,我们主要需要这两粒。 第二步骤,我们把这个温度列呢从自务串变成数字,为什么呢?因为刚才看到这温度后面带了一个摄氏度,这样的一个自务串怎么把这个列变成数字?是这样的,就是温度这一列等于温度这一列的 s t r 形式 replace, 他的后缀为空,然后 s type float 变成一个 float 形式运行,我们看一下 df 的音法, 而我们看到温度这一点呢,变成了弗洛特六十四,就是小数的形式往下走,因为我们想看四个季度的数据分布,所以说我们需要新增一列叫做季度,使用 pass 比较好完成。是这样的,对年月日 这一列呢,我们将其转换为 de time 形式,就 pd 点 todee time。 然后呢,对这种类型可以使用 dt 点 colter, 直接取出这一日期的季度的数字, 我们把这个词的意思呢来等于 defting cult。 这一列运行,我们看一下前六行,我们看到有两个变化,第一多的这一列就是 cut 记住的数字。第二, wood 这一列呢是小数, ok。 第四步很简单,我们就用 c, p, r 来绘制一个 box plot, 方法就这样, s, n, s, d box plot。 首先 data 顶 df 就是这个数据, 然后呢,我们指定 x 呢,是取这个数据中的 colt 这一列就这个季度。歪种呢,取的是这个温度,这一列就是这个小数。 我们运行一下, ok, 这个图呢,就是视频开始我们看到那个结果,从这个图中我们就能对比四个季度他的温度整体的分布的区别。从这个图中我们就看到五度呢,一季度,二季度,三季度,四季度逐次的上升,然后又下降。 并且从这个图中我们也看到 q 三这季度的温度是分布比较集中的,处于这个位置,但是 q 四他的分布呢,高温和低温他就比较发散,而他和 q 一有一些相似地方,就是温度的中位数几乎相近,高温和低温的分布呢,也是比较相近的。 ok, 以上呢就是本视频的演示,回顾一下,我们主要是学习了相形图,这个图可以直观的看到一组数字,他的中印数,复印数以及他的上面 下面言。另外从头中呢,我们可以很容易看到一些异常者的存在,对于数据分布的查看,这个图还是比较有用的,大家加油,我们下次见,拜拜。

大家好,今天要讲的内容是使用 python 绘制美观的神经网络。 在本节课中,我们会讨论如何使用 python 中的 network x 库绘制美观且标准的神经网络。具体来说,会根据指定的层和节点的数量绘制不同结构的神经网络。 network x 库可以用来创建和操作图类型的数据结构,其中包括无相图、有相图、代全图等等。 神经网络可以看作是一种图数据结构,因此可以使用 network x 库 创建并进行可视化的操作。 来看下面这个例子,我们希望画出一个两层网络,输入层有两个节点,输出层有三个节点,前面一层的节点会向后面一层的节点连接一条边。 代码如下,首先需要提前安装好 network x 库,然后在代码中导入 network x 和 mat plot leave, 然后使用 diagraph 创建一个有效图 g。 我们要绘制的网络包括了五个节点,一层的节点编号为 为一二,第二层的是三四五。我们使用 at edge 从一向三四五,从二向三四五分别连接一条边。 为了让绘制的图像看起来像一个神经网络,我们需要为这五个节点设置坐标。创建字典 pose, 字典的 key 是节点的名称,字典的 value 是节点所在的位置。 例如,我们希望一号和二号节点在一列,三四五在一列,因此设置一和二的 x 坐标为零,三四五的 x 坐标为一。另外,我们希望同一组中的节点可以均匀的分布在同一列上,所以, 所以我们将一和二的外坐标设置为零点二五与零点七五,三四五的外坐标设置为零点二、零点五和零点八, 按照这样的方式设置神经网络节点的摆放位置,再将他们画在画板上,就可以展现美观的神经网络了。 最后使用 n x 点 draw 函数进行绘制,其中 g 是要绘制的图, host 是图中节点的坐标。 his levels 等于处代表绘制节点的名称。 note color 和 edge color 是结点和边的颜色。 line, vest 和 white 是结点和边的粗细, note size 是结点的大小。 运行程序就得到了一个两层申请网络。 接着我们实现一个更加通用的绘制神经网络的代码 设置函数, draw network diagraph, 它可以根据传入的输入层、隐藏层、输出层中的神经元数量绘制对应的神经网络。 在函数中,首先创建一个图 g, 然后使用循环连接输入层和隐藏层之间的边,隐藏层和输出层之间的边。 接着计算每个节点的坐标。 pose 在计算时,三层节点的横坐标 x 直接设置为零一二就可以了。节点的纵坐标需要分别设置为, i 减 input number 除以二, i 减 he 的 number 除以二, i 减 output number 除以二。 这样做的目的是根据每一层的节点数量将节点从中间向两边分布。例如第一层有三个节点,横坐标是零,纵坐标是负的一点五,负的零点五和零点五。 最后调用 n x 点中绘制神经网络。在内函数中,我们可以多尝试几组参数绘制不同结构的神经网络。 那么 到这里使用 python 绘制美观的神经网络就讲完了,感谢大家的观看,我们下节课再会。

若知道这种这种以及这种高级的图都可以用 pass 来画,但是很多人因为不会 pass 而不知道怎么画,即使我之前给大家讲过一期用 pass 代码模板画图的方法,但要是不知道怎么调参数,怎么读懂代码的意思,那就没办法用这个方法快速画图了。 所以今天给大家说一个更加保姆级的方法,按照书的讲解来画图,更加通俗易懂并且高效。我用的科研论文配图绘制指南这本书写论文中图的类型他几乎都有,他这个是按照你的研究内容来对图形进行分类的,更合理一些。 所以我们也可以更好地去查找对应的图形类型,像单变量图、双变量图以及多变量图都可以清晰的找到,并且绘图中涉及到的参数对应哪些图的类型他都有,对小白可以说是非常友好了。非但如此,他给出的代码也会给你注释清楚这 代码是什么意思,非常替我们小白考虑。并且还有一点很好的是,在画图的最前面,他会告诉你这个图是用来干什么的,像组成的分析图、商机图,是什么也一定都有,并且所有的图也都给出了对应的代码,非常方便。可以说一书在手,绘图我有,你学会了吗?

同学们朋友们,你们好。四十八用拍摄画一张机械的图演示, 我们马上来看演示。大家思考一下,派审核 ccd 二次开发如何管理,怎么样去管理,能不能管理?如果你有兴趣的话,呃,不妨呢认真的去 学习一下。我们看一下代码,这一段代码呢,很长,从这到这很长, 那是不是很难呢?我想告诉你,不难,其实呢,很简单,许多语句都是一样的,只不过把他的阐述 改改。所以呢,只要你写出了基本的语句,那么把它改改以后,就成了整个的这个程序。 下面我们来演示这个程序,看一看他的图是怎么画出来的好。右键 运行一条水平线,一条垂直线, 第一个圆,第二个圆,第三个圆,第四个圆,圆弧圆弧,圆弧 湖,圆弧面积的直线。好,大家看一看, 这是程序自动运行以后,自动的把这个图画出来的。我没有对他进行控制。那么大家 如果我把这个程序放到四 s 店里面去,然后做出一些向齿轮,向 图像轴承,这是常用的标准键。他的图,那么就能够来,就像我在设计划图的时候的大量的这个实践。好,谢谢。


五十一、画等边三角形和正方形,这是画等边三角形的程序, 各位暂停一下,把程序记下来,看下面这是画正方形的程序, 各位也把它记下来。下面我们通过演示来向大家讲,为什么要写这些 代码,意思是什么?我们看这是兰花等边三角形。第一种 计划,俯卧卧的一百走一百,好,他向右边走了一百,他马上 要画这一条这样的一条斜线,那么大家想一想他旋转的角度是多少呢?就是这里 到这里这样的一个角度,他是等边三角形,这个内角是六十,那么这个 外角就是呢一百二十,所以他要向左边旋转一百二十度,我们大家看一看,就是这句话,看 向左旋转一百二十度,旋转一百二十度以后,再画一条一百长的这个线, 我们演示一下,这样,这样到这里马上呢,他还要来旋转到这里, 他现在的方向是这样,他旋转像这样,这个角度还是一百二十度,然后再去 旋转一个一百二十度,再画一个一百的线就完了。我们看这是左旋转一百二十度,这个是前进一百二 一百,这样我们演示一下,大家看等边三角形就完成了。好,下面我们看正方形的画法,正方形的 办法来,先走一百,左旋转九十度,再走一百,再左旋转九十度,再走一百,再左旋转九十度,再走一百左旋转九十度,总共有四句, 重复了一次,两次,三次,四次,一次是花一条币,不知道大家能不能理解, 就是走一百旋转九十度,走一百旋转九十度,总共走四次。那么大家想一想这个地方的程序, 我们在下一次就要讲到了用循环来给他进行讲话,就是说爱音软件四只有四次,然后底下是 把这走一条线的程序放里面就行了,让他循环四十就走四条线,今天我们就学到这里,谢谢。

好,那我们今天一起来看在拍子当中常见的八种图表绘制,我们分别用这八种举的例子,比如说最常见的折线图,实际上我们在绘制的时候主要就是调用这个模块,然后不管是折线图,散点图 什么图,只是调用对应的方法。那在这里我们要知道的就是要确定画图的横坐标,纵坐标到底是什么?比如说我们在这里横坐标是一到五的值,那么纵坐标呢是二四六八十,我们画线图横坐标纵标放进去,那这个时候我们就可以知道横坐标以这个 为一个坐标,然后坐坐标是这样的就可以画成图。那如果说我们要是画散点图的话,你会发现是只有这样代码变化了的画出来,同样的你会发现只不过他把每一个这样对应的,比如说横坐标一 坐标为二组成的这样的组,一二和二四这样依次的画成一个点,作为三点图。理解了这个之后我们就可以去拓展。同理如果说我们要画柱状图的话,同样的也是刚刚的那些坐标点,只不过呢一二三四五对应的是五个柱状 坐坐标,对的这个是他的值,我们看到是类似的,如果说我们要画饼图的话,我们可以设置标签,以及每个标签所占的笔,我们可以用整数,比如说标签是从字母 a 到 e, 好比例呢是这样的,然后我们再去画,同时把标签设置为自己自定义的标签,如果你不设置的话,他也是不会冒错的,设置完之后再调用得到运行结果,就这样的我们可以看到在这里面 字母 c 对应的比重是最大的,同理我们可以画直方图,直方图的方法呢就是电用这个, 比如说我们用 x 先随机生成了一些数,然后呢我们再把它分成三十组,然后呢可以画成一个这样的直观图。同理,如果说我们要画相线图的话,我们也可以调用这个方法。同样的我们用 range n 这个函数来生成一些点 ren 的意思呢,就是说我们返回一个,或者说一组返回标准服从标准正态的是随机降稳值,如果后面有个参数五,则说说明是返回五组,每一组里面的 具体的取值都是主要在这个范围里面的,也就大概是在负二和二之间,那如果说有较大的值的话,这也是有可能, 但是概率很小。就所以这个时候我们就可以用直方图来分析里面有没有异常值啊或怎样的。比如直方图,你看这个地方呢,就是我们所讲的 上边缘,这里是上边缘,这里是下边缘,我们可以看到我们随机生成的五个组,分别对应这五个形状,五个组上下边缘是不是大概就是在负二和二之间?当然有一些 比较小的值,可能也是在负三到三,但是基本的范围是这样的,那比如说我们在这里的时候,他为什么有个圆圈呢?圆圈一般表示异常值,就是说我们用随机方法产生这个数据的时候, 绝大多数的值都是在这范围里面的,但也会有一些误差值,比如说你看这后面的三个,这个呢就是给大家分享的。然后下面呢就是一些理论,比如说异常值啊,就超过了那个范围的 那些数据点,我们就把它认知为异常值。 shift 镶嵌图呢,就可以有一个这样的分析好处。再比如说热热议图,同样的随机生成 十乘十的数据,我们可以用六例图来表示,三例图也是类似的呀,主要就是调我们这些模块。

大家好,今天给大家分享一个画架构图的工具,这跟一半的工具可不一样,它是通过写 python 代码来画架构图的,是不是很酷很炫很屌?它是一个 gihab 的项目,拥有三万多颗星以及两千多的 folk。 我们先来看看他生成的一个架构图的效果是不是不错,接下来让我给大家演示一下。 呃,我这边用丘比特 notebook 演示,这并不是必须的,本质上他就是一段拍审代码,你可以直接在 id 里写,也可以在 notebook 里写,这是这个工具的 gap 地址, 大家可以直接搜索一下 diagrams, 就可以马上找到这个 report string。 首先我们去安装这个 工具,它需要 python 的运行时三点六或者以上版本,大家可以看到我这边是三点九。 然后它还依赖于这个 graph vase 的一个一个包,大家可以直接搜一下,也能够快速的安装。最后的话可以用 python 的包管理工具来安装这个 diagrams, 直接 p i p install diagrams 就可以了。我们先来看一个简单的实例, 这是一个 aws 的一个架构图,我们先看一下这段代码它最终输出的一个图像是什么样。 这是一个非常简单的一个架构,还有三个元素或者三个资源组成。首先是这一个附带均衡器,然后是一台虚拟机, 就是一个数据库。在这个工具里面,我们把这个叫做节点,他们之间通过这种带箭头或者不带箭头的线段连接,代表着数据的流向。接下来让我们看一下代码, 这里我们导入了所需要的类,这两个是通用类 diagram 和 age 啊,其他的话代表的一些资源类,也就是我们正面看到的一个个的图标或者节点啊。如果熟悉 aws 的话,我们知道这些歌词代表了 aws 上的一些资源。 然后通过这个 with 语句创建一个 diagram, 这个对象他的名字叫 web service。 然后这个参数 show 我们可以暂时先不管,后面我们会提到,然后把它命名为 d, d, 这个对, 这个 diagram 实力实际代表了我们这整一幅图。下面的这个语句描述了图里面的内容。 仔细观察我们的代码以及我们生成的一个图像,很容易发现他们之间有的一一对应关系。这里的 e, o, b, e, c, two, r, d, s 分别对应的图上这些图标啊,这些位移操作 分别对应着这里面的带箭头的线段,他们的方向代表着箭头的方向。然后这个 age 代表了一个特殊的线段,他可以有标签,可以指定颜 颜色,也可以指定它的风格是实线还是虚线。我们试着再加一些资源上去看看效果怎么样, 点击运行,这样我们新加的这些资源也都在图上表示出来了。通过这个简单的视力,我们基本了解了如何使用这个库来画架构图。接下来我们详细介绍一下这个工具的几个关键的概念。 首先是 diagram, 我们知道它就代表的这一幅图,我们必须新建一个 diagram 对象,才能在上面添加其他的一些内容啊。它有四个层,四个属性。首先是 file name, 因为我们每一幅图生成的时候, 这个工具默自动会生成一个文件,然后这个文件的名字就是由这个 file name 属性来指定,如果我们没有指定,他就会默认生成一个,像我们这个场景中,他就会用这个名字将这个参数 其中的空格换成下划线,把大写字母改成小写字母以后,就作为了他的名字。大家观察一下这里,我们可以看到这里面已经有这么一个文件生成了,我们点击打开,他就是生成的图画, 然后 alt format 表示这个文件的一个格式,它默认是 png 格式,我们可以指定它会接 pack 或者 svg 向量格式,然后 show 表示我们这个程序运行完成以后,是否自动打开这一个文件,那我们这边的话是 设置为 force, 不用自动打开,因为我们在这个 jubiterno book 里面,我们会自动把这个生成的图片也展示出来,所以没必要再把它打开了。 然后 direction 是表示这个图像这个 diagram 他画图的一个方向,比如说我们这边都是从左往右再画,那他也可以指定从右往左,或者说从上到下。 接下来第二个概念是 nod, nod 其实就是我们图上这一个个的图标,也代表着各种资源。第三个概念是 age, age 其实就是各个 nod 之间的连线,最简单的一个 age 一个连线,我们可以通过这种位移操作 来表示,然后他的方向就是箭头方向。如果我们想要有一些更复杂的控制,比如说我们想要在上面加一个标签,或者说对这个箭头加一些颜色,或者他痛虚线,指定他是虚线还是实线,那我们就需要通过这个 age 这个类来控制来实现。然后最后这个 clast 的话我目前还没有接触过,接下来我们找一个相对复杂一点的例子来演示这个 clast 的作用。 接下来我们看一个相对复杂的架构,这也是一个 aws 的一个架构图,它代表了一个事件处理的架构。 大家看到我们这里用到了 claster, 也用到了其他更多的一些 aws 的资源。首先创建一个 diagram 对 像,然后在这个对象里面我们再创建其他的一些对象。然后可以看到呢,我们这个 class 的对象跟 dog one 有点类似,可以包含其他的内容, 就像一个容器一样。而且 claster 它还可以内部可以签套, claster 理论上它是可以无限签套的,其他的内容的话没有特别的,我们运行一下看看结果如何。好的看到我们这个结果已经出来了, 你看这里就是我们所谓的 class 的,其实这边就是把一些资源放到了一个 一个主里面,然后他们把他们这样一种方式跟其他的资源隔离开来了,所以这个就是克拉斯特的一个作用。接下来我们再来看一下其他的一些实力 啊。这是一个 g c p, 就是 google 的一个云服务,然后它的一个消息采集系统的一个价格。 我们这边用到了 claster、 diagram 以及 gcp 对应的那些节点,也就是他们的资源。然后其他的内容语法的话没有特别的复杂,基本就是那几个概念。我们看一下效果。 对,这个就是刚刚那段代码生成的一个架构图, 我们再看一下其他的,除了非就是那些传统的组件,就是飞云服务商的一些组件,大家看到他这些资源的话,是从从另外一个 labor 里面 也来了,是 on prime, 就是不在云上的那些资源,我们看一下执行的效果, 这看起来是不是就是比较传统一点?有 reddis、 pg engines 以及其他的一些一些框架?它这工具除了这些架构图以外,它还可以画流程。 比如说我这边有一个简单的一个视力流程图,跟架构图的一个区别,无非就是把这些资源这些节点换一下,换成流程图里面常见的那些图标执行一下。 这就是一个非常简单的一个流程,就开始第一步、第二步、第三步,然后结束。当然这个很简单,他还可以分叉合并啊,其他的一些复杂的一个操作,大家有兴趣的话可以自己去体验一下。 到这里大家是不是都已经感受到了,其实这一工具最重要的就是这些节点,我们看看这个工具他默认支持哪些节点, 他的官方网站上有一个非常详细的列表,大哥大家可以看到常见的一些语音服务商, 也包括了阿里云以及其他的一些框架跟工具。最后我们还可以定制这些节点,让我们简单看一下如何来定制我们自己的节点。我们看一下官方给的一个例子, 先导入一个 custom 类,然后我们通过新建一个 custom 实力来创建一个定制的一个节点,然后这个他接受两个参数,第一个是 他的一个标签,就是这个节点显示的时候会给一个标签,然后第二个参数的话,就是这个节点对图标所在的一个文件位置就这么简单, 所以这些都是定制的节点。这个画图工具大家可喜欢,如果觉得还不错,一定点赞分享并关注哦,我会继续为大家带来一些有趣的工具,拜拜。