python流程图绘制?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python流程图绘制?相关的知识,希望对你有一定的参考价值。
想请各位精通python的大佬看看这两个程序应该怎么画流程图?
参考技术A自动生成流程图
基于Python和Graphviz开发的,能将源代码转化为流程图的工具:pycallgraph 可以帮到你;
跟着参考文章操作,亲测有效;
参考文章:Python 流程图 — 一键转化代码为流程图
参考技术B 回答2020年2月11日AutoCode-Python 根据流程图生成python代码, 同时运行. 适合于复杂的代码设计 走向开源!!! github地址: https://github.com/fenglinyushu/auto...
提问这个怎么写
看不太懂
回答开始之前,你要确保Python和pip已经成功安装在电脑上噢,如果没有,请访问这篇文章:超详细Python安装指南 进行安装。如果你用Python的目的是数据分析,可以直接安装Anaconda:Python数据分析与挖掘好帮手—AnacondaWindows环境下打开Cmd(开始—运行—CMD),苹果系统环境下请打开Terminal(command+空格输入Terminal),准备开始输入命令安装依赖。当然,我更推荐大家用VSCode编辑器,把本文代码Copy下来,在编辑器下方的终端运行命令安装依赖模块,多舒服的一件事啊:Python 编程的最好搭档—VSCode
参考技术C import matplotlib.pyplot as pltimport numpy as npimport matplotlib.patches as mpatchesplt.subplots_adjust(left=0.00, bottom=0.0, right=1.00, top=0.95, wspace=0.0, hspace=0.00)def hexagon_with_text(ax,x,y,text,size,**kwargs):
xy=np.array([x,y])
hexagon = mpatches.RegularPolygon(xy, 6, radius=size,facecolor='#5472bb',edgecolor='#3f597c', orientation=np.pi / 2)
ax.add_patch(hexagon)
ax.text(xy[0],xy[1],text,fontsize=size*14,color='white',va='center',ha='center')def circle_with_text(ax,x,y,text,size,**kwargs):
xy=np.array([x,y])
circle = mpatches.Circle(xy, radius=size,facecolor='#83aa51',edgecolor='#546538')
ax.add_patch(circle)
ax.text(xy[0],xy[1],text,fontsize=size*14,color='white',va='center',ha='center')def arrow(ax,x,y,size,**kwargs):
ax.plot(x,y,**kwargs)
theta=np.arctan2(x[1]-x[0],y[1]-y[0])
xy=np.array([x[1]-size*np.sin(theta),y[1]-size*np.cos(theta)])
triangle = mpatches.RegularPolygon(xy, 3, radius=size,color=kwargs['color'], orientation=-theta)
ax.add_patch(triangle)def arrow_with_rad(ax,x,y,radius,size,**kwargs):
d=np.sqrt((x[1]-x[0])**2+(y[1]-y[0])**2)
theta=np.arctan2(x[1]-x[0],y[0]-y[1])
x0=(x[0]+x[1])/2+np.cos(theta)*np.sqrt(radius**2-(d/2)**2)
y0=(y[0]+y[1])/2+np.sin(theta)*np.sqrt(radius**2-(d/2)**2)
theta1=np.arctan2(y[0]-y0,x[0]-x0)
theta2=np.arctan2(y[1]-y0,x[1]-x0)
arc_x = []
arc_y = []
for theta in np.arange(theta1,theta2+(np.pi*2),np.pi/180):
temp_x=x0 + radius * np.cos(theta)
temp_y=y0 + radius * np.sin(theta)
if((temp_x-x[0])**2+(temp_y-y[0])**2>1 and (temp_x-x[1])**2+(temp_y-y[1])**2>1):
arc_x.append(temp_x)
arc_y.append(temp_y)
ax.plot(arc_x,arc_y,**kwargs)
theta=np.arctan2(arc_y[-2]-arc_y[-1],arc_x[-2]-arc_x[-1])
xy=np.array([arc_x[-1]+size*np.cos(theta),arc_y[-1]+size*np.sin(theta)])
triangle = mpatches.RegularPolygon(xy, 3, radius=size,color=kwargs['color'], orientation=np.pi/2+theta)
ax.add_patch(triangle)ax=plt.subplot(1,1,1,aspect='equal')ax.axis('off')circle_with_text(ax,2,23,'$\mathrmU_1$',1)circle_with_text(ax,2,20,'$\mathrmU_2$',1)circle_with_text(ax,2,17,'$\mathrmU_3$',1)circle_with_text(ax,2,14,'$\mathrmU_4$',1)hexagon_with_text(ax,8,22.5,'$\mathrmI_1$',1)hexagon_with_text(ax,8,18.5,'$\mathrmI_2$',1)hexagon_with_text(ax,8,14.5,'$\mathrmI_3$',1)arrow(ax,[3,8+np.cos(np.pi*3/3)],[23,22.5+np.sin(np.pi*3/3)],0.3,color='#b65576',linestyle='--')arrow(ax,[3,8+np.cos(np.pi*2/3)],[23,14.5+np.sin(np.pi*2/3)],0.3,color='#b65576',linestyle='--')arrow(ax,[3,8+np.cos(np.pi*4/3)],[17,22.5+np.sin(np.pi*4/3)],0.3,color='#b65576',linestyle='--')arrow(ax,[3,8+np.cos(np.pi*4/3)],[14,18.5+np.sin(np.pi*4/3)],0.3,color='#b65576',linestyle='--')arrow(ax,[3,8+np.cos(np.pi*3/3)],[20,18.5+np.sin(np.pi*3/3)],0.3,color='#b9b8bd',linestyle='--')arrow(ax,[3,8+np.cos(np.pi*3/3)],[17,14.5+np.sin(np.pi*3/3)],0.3,color='#b9b8bd',linestyle='--')arrow(ax,[3,8+np.cos(np.pi*3/3)],[14,14.5+np.sin(np.pi*3/3)],0.3,color='#b9b8bd',linestyle='--')ax.text(10.5,15,'$G_r$',fontsize=20)circle_with_text(ax,4.2,10.5,'$\mathrmU_1$',1)circle_with_text(ax,9.0,10.0,'$\mathrmU_2$',1)circle_with_text(ax,8.5,5.8,'$\mathrmU_3$',1)circle_with_text(ax,3.8,6.8,'$\mathrmU_4$',1)theta=-np.pi/2-np.arctan2(9.0-4.2,10.0-10.5)arrow(ax,[9.0+np.cos(theta),4.2-np.cos(theta)],[10.0+np.sin(theta),10.5-np.sin(theta)],0.3,color='#8199bb')theta=-np.pi/2-np.arctan2(8.5-9.0,5.8-10.0)arrow(ax,[8.5+np.cos(theta),9.0-np.cos(theta)],[5.8+np.sin(theta),10.0-np.sin(theta)],0.3,color='#8199bb')theta=-np.pi/2-np.arctan2(3.8-4.2,6.8-10.5)arrow(ax,[3.8+np.cos(theta),4.2-np.cos(theta)],[6.8+np.sin(theta),10.5-np.sin(theta)],0.3,color='#8199bb')theta=-np.pi/2-np.arctan2(3.8-8.5,6.8-5.8)arrow(ax,[3.8+np.cos(theta),8.5-np.cos(theta)],[6.8+np.sin(theta),5.8-np.sin(theta)],0.3,color='#8199bb')theta=-np.pi/2-np.arctan2(4.2-8.5,10.5-5.8)arrow(ax,[4.2+np.cos(theta),8.5-np.cos(theta)],[10.5+np.sin(theta),5.8-np.sin(theta)],0.3,color='#8199bb')arrow_with_rad(ax,[4.2,3.8],[10.5,6.8],1.9,0.3,color='#8199bb')ax.text(10.5,8,r'$G_s$',fontsize=20)circle_with_text(ax,25.0,19.0,'$\mathrmU_1$',1)circle_with_text(ax,35.0,17.0,'$\mathrmU_2$',1)circle_with_text(ax,32.0,8.0,'$\mathrmU_3$',1)circle_with_text(ax,24.0,10.0,'$\mathrmU_4$',1)hexagon_with_text(ax,32.5,14.0,'$\mathrmI_1$',1)hexagon_with_text(ax,23.0,16.0,'$\mathrmI_2$',1)hexagon_with_text(ax,27.0,13.0,'$\mathrmI_3$',1)theta=-np.pi/2-np.arctan2(35.0-25.0,17.0-19.0)arrow(ax,[35.0+np.cos(theta),25.0-np.cos(theta)],[17.0+np.sin(theta),19.0-np.sin(theta)],0.3,color='#8199bb')theta=-np.pi/2-np.arctan2(24.0-25.0,10.0-19.0)arrow(ax,[24.0+np.cos(theta),25.0-np.cos(theta)],[10.0+np.sin(theta),19.0-np.sin(theta)],0.3,color='#8199bb')theta=-np.pi/2-np.arctan2(24.0-32.0,10.0-8.0)arrow(ax,[24.0+np.cos(theta),32.0-np.cos(theta)],[10.0+np.sin(theta),8.0-np.sin(theta)],0.3,color='#8199bb')theta=-np.pi/2-np.arctan2(32.0-35.0,8.0-17.0)arrow(ax,[32.0+np.cos(theta),35.0-np.cos(theta)],[8.0+np.sin(theta),17.0-np.sin(theta)],0.3,color='#8199bb')theta=-np.pi/2-np.arctan2(25.0-32.0,19.0-8.0)arrow(ax,[25.0+np.cos(theta),32.0-np.cos(theta)],[19.0+np.sin(theta),8.0-np.sin(theta)],0.3,color='#8199bb')theta=-np.pi/2-np.arctan2(24.0-23-np.cos(np.pi*5/3),10.0-16.0-np.sin(np.pi*5/3))arrow(ax,[24.0+np.cos(theta),23.0+np.cos(np.pi*5/3)],[10.0+np.sin(theta),16.0+np.sin(np.pi*5/3)],0.3,color='#b65576',linestyle='--')theta=-np.pi/2-np.arctan2(32.0-32.5-np.cos(np.pi*4/3),8.0-14.0-np.sin(np.pi*4/3))arrow(ax,[32.0+np.cos(theta),32.5+np.cos(np.pi*4/3)],[8.0+np.sin(theta),14.0+np.sin(np.pi*4/3)],0.3,color='#b65576',linestyle='--')theta=-np.pi/2-np.arctan2(25.0-32.0-np.cos(np.pi*2/3),19.0-8.0-np.sin(np.pi*2/3))arrow(ax,[25.0+np.cos(theta),27.0+np.cos(np.pi*2/3)],[19.0+np.sin(theta),13.0+np.sin(np.pi*2/3)],0.3,color='#b65576',linestyle='--')arrow(ax,[25.0+np.cos(theta),32.5+np.cos(np.pi*3/3)],[19.0+np.sin(theta),14.0+np.sin(np.pi*3/3)],0.3,color='#b65576',linestyle='--')theta=-np.pi/2-np.arctan2(24.0-23-np.cos(np.pi*5/3),10.0-16.0-np.sin(np.pi*5/3))arrow(ax,[24.0+np.cos(theta),23.0+np.cos(np.pi*5/3)],[10.0+np.sin(theta),16.0+np.sin(np.pi*5/3)],0.3,color='#b65576',linestyle='--')theta=-np.pi/2-np.arctan2(35.0-23-np.cos(np.pi*0/3),17.0-16.0-np.sin(np.pi*0/3))arrow(ax,[35.0+np.cos(theta),23.0+np.cos(np.pi*0/3)],[17.0+np.sin(theta),16.0+np.sin(np.pi*0/3)],0.3,color='#b9b8bd',linestyle='--')theta=-np.pi/2-np.arctan2(24.0-27-np.cos(np.pi*4/3),10.0-13.0-np.sin(np.pi*4/3))arrow(ax,[24.0+np.cos(theta),27.0+np.cos(np.pi*4/3)],[10.0+np.sin(theta),13.0+np.sin(np.pi*4/3)],0.3,color='#b9b8bd',linestyle='--')theta=-np.pi/2-np.arctan2(32.0-27-np.cos(np.pi*5/3),8.0-13.0-np.sin(np.pi*5/3))arrow(ax,[32.0+np.cos(theta),27.0+np.cos(np.pi*5/3)],[8.0+np.sin(theta),13.0+np.sin(np.pi*5/3)],0.3,color='#b9b8bd',linestyle='--')arrow_with_rad(ax,[25,24],[19,10],4.8,0.3,color='#8199bb')bbox_props = dict(boxstyle="rarrow,pad=0.3", fc="#629cce", ec="#657084", lw=2)ax.text(16, 18, " "*15, ha="center", va="center", rotation=345,
size=15,
bbox=bbox_props)ax.text(16, 9, " "*15, ha="center", va="center", rotation=30,
size=15,
bbox=bbox_props)arrow(ax,[10,13],[24.5,24.5],0.3,color='#b65576',linestyle='--')arrow(ax,[20,23],[24.5,24.5],0.3,color='#b9b8bd',linestyle='--')arrow(ax,[27,30],[24.5,24.5],0.3,color='#8199bb')ax.text(9.5,24.5,'Purchase-P',fontsize=15,va='center',ha='right')ax.text(19.5,24.5,'Purchase-N',fontsize=15,va='center',ha='right')ax.text(26.5,24.5,'Trust',fontsize=15,va='center',ha='right')fig=plt.gcf()fig.set_size_inches(14, 8)ax.set_xlim(0,40)ax.set_ylim(0,25)
流程图怎样绘制,绘制流程图两种方法介绍
流程图也渐渐向办公软件开始转移,现在用的地方是越来越多了,在办公中一个绘制详细的流程图就可以省去很多时间以及不必要的麻烦,相信对办公软件的熟练应用也是很多在职人员不可缺少的技巧之一,下面给大家分享绘制流程图发两种简便方法。
** 绘制工具:WPS 迅捷画图
**绘制方法:
方法一:用WPS制作流程图
1.首先,打开WPS文档,在上方栏目中点击“形状——新建绘图画布”这时一个画布将穿线在页面中间。
2.击“插入——形状”会出现流程图,选择你需要的图形,点击鼠标左键,就可以将需要的图形进行拖动了。
3.选择“插入——形状”在出现的工具中选择连接符,点击选中连接符,鼠标会变成十字形,对框架进行搭建使用即可。
方法二:用迅捷画图绘制流程图
1.上面是讲述的利用WPS绘制流程图,这时我们会发现有很多功能不能实现,并且绘制的时候特别麻烦,很浪费时间,还是要选择专业的绘制流程图的软件进行使用,进入迅捷画图中,点击首页的立即体验就可以开始绘制使用,下面开始不一样的绘制之旅吧。
2.会进入到在线编辑页面中,选择需要的流程图进行搭建使用。图形之间还要有连接线进行链接,这样完整的框架才算搭建成功。
3.框架搭建完成之后对所绘制的流程图就应该将其的内容输入进去,双击就可以填充使用。
4.对于流程图我们还可以对其背景颜色进行填充或者是渐变填充,这样可以绘制出更加精美的流程图。
5.我们绘制成功的流程图可以对其储存使用,在面板中的文件选项中可以实现此操作,并且里面还有很多格式可以进行选择。
上面分享的两种方法都是围绕画流程图进行展开使用的,整体的操作方法是比较简单的,通过两种方法的对比不难发现利用专业绘制流程图的软件可以节约很多时间带来很多便捷,希望可以帮助到大家。
以上是关于python流程图绘制?的主要内容,如果未能解决你的问题,请参考以下文章