流程图存在于我们生活的方方面面,对我们跟踪项目进度、对各种事情进行决策都有很大的帮助。对于全能的Python来说,画流程图也很容易。今天,小编就给大家介绍两个绘制流程图的模块,我们先来看第一个。SchemDraw所以在SchemDraw模块中,有六个元素用来表示流程图的主要节点。椭圆代表决策的开始和结束。代码如下:importschemdrawfromschemdraw.flowimport*withschemdraw.Drawing()asd:d+=Start().label("Start")输出箭头表示决策方向,用于连接每个节点。代码如下:withschemdraw.Drawing()asd:d+=Arrow(w=5).right().label("Connector")输出平行四边形代表你要处理和解决的问题,而长方形代表你想为此付出的努力或过程。代码如下:withschemdraw.Drawing()asd:d+=Data(w=5).label("What'stheproblem")outputwithschemdraw.Drawing()asd:d+=Process(w=5).label("Processing")输出,菱形表示决策的具体情况,代码如下:withschemdraw.Drawing()asd:d+=Decision(w=5).label("Decisions")output我们来画一个简单的过程图,如果我们在考虑周末要不要去野营(Camping),那么既然要去野营,就要查天气看是否晴天(Sunny),如果下雨了(Rainy),咱们不走,按照这个逻辑,我们画一个流程图,代码如下:importschemdrawfromschemdraw.flowimport*withschemdraw.Drawing()asd:d+=Start().label("开始")d+=箭头().down(d.unit/2)#具体问题是什么?d+=Data(w=4).label("Gocampingornot")d+=Arrow().down(d.unit/2)#第一步是查看天气d+=Box(w=4).label("Checkweatherfirst")d+=Arrow().down(d.unit/2)#是否晴天d+=(decision:=Decision(w=5,h=5,S="True",E="False").label("Seeifit'ssunny"))#iftrued+=Arrow().length(d.unit/2)d+=(true:=Box(w=5).label("Sunny,gocamping"))d+=Arrow().length(d.unit/2)#endd+=(end:=Ellipse().label("End"))#ifnotIfit'ssunnyd+=Arrow().right(d.unit).at(decision.E)#如果下雨,你不能去露营d+=(false:=Box(w=5).label("Rainy,stayathome"))#决策的方向d+=Arrow().down(d.unit*2.5).at(false.S)#决策的方向d+=Arrow().left(d.unit*2.15)d.save("palindromeflowchart.jpeg",dpi=300)outputNetworkxNetworkx模块用于创建和处理复杂的图网络结构,生成各种随机网络和经典网络,分析网络结构和构建网络模型,例如绘制人际关系关系网络的情况下可以使用networkx模块。比如一个公司的组织结构图,也可以使用这个模块,简单直观的画出公司的整体架构。代码如下:importnetworkxasnximportmatplotlib.pyplotaspltimportnumpyasnpG=nx.DiGraph()nodes=np.arange(0,8).tolist()G.add_nodes_from(nodes)#节点连接信息,连接了哪些节点G.add_edges_from([(0,1),(0,2),(1,3),(1,4),(2,5),(2,6),(2,7)])#节点位置pos={0:(10,10),1:(7.5,7.5),2:(12.5,7.5),3:(6,6),4:(9,6),5:(11,6),6:(14,6),7:(17,6)}#节点标签labels={0:"CEO",1:"TeamALead",2:"TeamBLead",3:"StaffA",4:"StaffB",5:"员工C",6:"员工D",7:"员工E"}nx.draw_networkx(G,pos=pos,labels=labels,arrows=True,node_shape="s",node_color="white")plt.title("CompanyStructure")plt.show()output看到这里,你可能会认为指出的结果有点简单。如果要加点颜色,代码如下:nx.draw_networkx(G,pos=pos,labels=labels,bbox=dict(facecolor="skyblue",boxstyle="round",ec="silver",pad=0.3),edge_color="gray")plt.title("公司结构")plt.显示()输出
