Python调用graphviz绘制结构化图形网络示例
首先要下载:Graphviz-GraphVisualizationSoftware
安装完成后将安装目录的bin路径加到系统路径中,有时候需要重启电脑。
然后:
pipinstallgraphviz importgraphvizasgz
有向图
dot=gz.Digraph()
dot.node('1','Test1')
dot.node('2','Test2')
dot.node('3','Test3')
dot.node('4','Test4')
dot.edges(['12','23','34','24'])
dot
无向图
dot=gz.Graph()
dot.node('1','Test1')
dot.node('2','Test2')
dot.node('3','Test3')
dot.node('4','Test4')
dot.edges(['12','23','34','24'])
dot
来个随机点的复杂点的图
importrandom
dot=gz.Digraph()
foriinrange(10):
dot.node('%s'%i,'Test%s'%i)
dot.edges([str(random.randint(10,99))foriinrange(10)])
dot
绘制神经网络简易图
defneural_graph(inp=3,hide=(10,),outp=3,inp_label='input',hide_label='hide',outp_label='output',dropout=True,style='h',size='2,1'):
"""
绘制简易神经网络图(有向图)
:paraminp:输入神经元个数
:paramhide:隐藏层神经元个数,可迭代数组
:paramoutp:输出神经元个数
:paraminp_label:输入名称显示
:paramhide_label:隐藏层名称显示
:paramoutp_label:输出名称显示
:paramdropout:是否全连接
:paramstyle:水平或垂直显示,可选项为'h','v'
:paramsize:图像显示大小
:return:有向图
"""
dot=gz.Digraph(name='neuralnetwork')
dot.attr(size=size)
ifstyle=='v':
dot.attr(rankdir='LR')
defdraw(enter,exit,label1,label2):
foriinrange(enter):
forjinrange(exit):
ifdropout:
ifrandom.randint(0,max(enter,exit)):
dot.edge('%s%s'%(label1,i),'%s%s'%(label2,j))
else:
dot.edge('%s%s'%(label1,i),'%s%s'%(label2,j))
hide=list(hide)
hide.insert(0,inp)
hide.append(outp)
forindex,(i,j)inenumerate(zip(hide[:-1],hide[1:])):
ifindex==0:
draw(i,j,inp_label,hide_label+str(index))
elifindex==len(hide)-2:
draw(i,j,hide_label+str(index-1),outp_label)
else:
draw(i,j,hide_label+str(index-1),hide_label+str(index))
returndot
#其他运行方式
#returndot.view()
以上这篇Python调用graphviz绘制结构化图形网络示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
