Python调用graphviz绘制结构化图形网络示例


Posted in Python onNovember 22, 2019

首先要下载:Graphviz - Graph Visualization Software

安装完成后将安装目录的bin 路径加到系统路径中,有时候需要重启电脑。

然后:

pip install graphviz

import graphviz as gz

有向图

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

Python调用graphviz绘制结构化图形网络示例

无向图

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

Python调用graphviz绘制结构化图形网络示例

来个随机点的复杂点的图

import random

dot = gz.Digraph()
for i in range(10):
  dot.node('%s' % i, 'Test%s' % i)
dot.edges([str(random.randint(10, 99)) for i in range(10)])
dot

Python调用graphviz绘制结构化图形网络示例

绘制神经网络简易图

def neural_graph(inp=3, hide=(10, ), outp=3, inp_label='input', hide_label='hide', outp_label='output', dropout=True, style='h', size='2, 1'):
  """
  绘制简易神经网络图(有向图)
  :param inp: 输入神经元个数
  :param hide: 隐藏层神经元个数, 可迭代数组
  :param outp: 输出神经元个数
  :param inp_label: 输入名称显示
  :param hide_label: 隐藏层名称显示
  :param outp_label: 输出名称显示
  :param dropout: 是否全连接
  :param style: 水平或垂直显示, 可选项为 'h', 'v'
  :param size: 图像显示大小
  :return: 有向图
  """

  dot = gz.Digraph(name='neural network')
  dot.attr(size=size)
  if style == 'v':
    dot.attr(rankdir='LR')

  def draw(enter, exit, label1, label2):
    for i in range(enter):
      for j in range(exit):
        if dropout:
          if random.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)
  for index, (i, j) in enumerate(zip(hide[:-1], hide[1:])):
    if index == 0:
      draw(i, j, inp_label, hide_label+str(index))
    elif index == 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))

  return dot

  #其他运行方式
  #return dot.view()

Python调用graphviz绘制结构化图形网络示例

Python调用graphviz绘制结构化图形网络示例

Python调用graphviz绘制结构化图形网络示例

Python调用graphviz绘制结构化图形网络示例

Python调用graphviz绘制结构化图形网络示例

Python调用graphviz绘制结构化图形网络示例

以上这篇Python调用graphviz绘制结构化图形网络示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python正则表达式教程之三:贪婪/非贪婪特性
Mar 02 Python
python清理子进程机制剖析
Nov 23 Python
对Python中DataFrame按照行遍历的方法
Apr 08 Python
python opencv实现运动检测
Jul 10 Python
详解Python匿名函数(lambda函数)
Apr 19 Python
python图像和办公文档处理总结
May 28 Python
简单了解python关系(比较)运算符
Jul 08 Python
Python3 解决读取中文文件txt编码的问题
Dec 20 Python
新手学python应该下哪个版本
Jun 11 Python
Visual Studio code 配置Python开发环境
Sep 11 Python
pycharm永久激活超详细教程
Oct 29 Python
python利用opencv实现颜色检测
Feb 23 Python
python实现简单图书管理系统
Nov 22 #Python
使用Python生成200个激活码的实现方法
Nov 22 #Python
Python的几种主动结束程序方式
Nov 22 #Python
python实现超市商品销售管理系统
Nov 22 #Python
python实现二分类的卡方分箱示例
Nov 22 #Python
python的等深分箱实例
Nov 22 #Python
基于python实现学生信息管理系统
Nov 22 #Python
You might like
php生成随机密码的三种方法小结
2010/09/04 PHP
谈谈关于php的优点与缺点
2013/04/11 PHP
学习php设计模式 php实现适配器模式
2015/12/07 PHP
PHP实现mysqli批量执行多条语句的方法示例
2017/07/22 PHP
JS 文件大小判断的实现代码
2010/04/07 Javascript
收集的一些Array及String原型对象的扩展实现代码
2010/12/05 Javascript
用js判断页面刷新或关闭的方法(onbeforeunload与onunload事件)
2012/06/22 Javascript
jquery插件制作 图片走廊 gallery
2012/08/17 Javascript
js获得当前系统日期时间的方法
2015/05/06 Javascript
js动态创建及移除div的方法
2015/06/03 Javascript
JavaScript 七大技巧(二)
2015/12/13 Javascript
AngularJS之页面跳转Route实例代码
2017/03/10 Javascript
JavaScript条件判断_动力节点Java学院整理
2017/06/26 Javascript
ReactNative Image组件使用详解
2017/08/07 Javascript
vue的style绑定background-image的方式和其他变量数据的区别详解
2018/09/03 Javascript
微信小程序自定义底部导航带跳转功能
2018/11/27 Javascript
如何实现小程序tab栏下划线动画效果
2019/05/18 Javascript
微信小程序 自定义复选框实现代码实例
2019/09/04 Javascript
vue+导航锚点联动-滚动监听和点击平滑滚动跳转实例
2019/11/13 Javascript
微信小程序修改数组长度的问题的解决
2019/12/17 Javascript
JavaScript装箱及拆箱boxing及unBoxing用法解析
2020/06/15 Javascript
JSON 入门教程基础篇 json入门学习笔记
2020/09/22 Javascript
ant design vue中日期选择框混合时间选择器的用法说明
2020/10/27 Javascript
[01:28:24]NAVI vs VG Supermajor 败者组 BO3 第三场 6.5
2018/06/06 DOTA
python+selenium实现登录账户后自动点击的示例
2017/12/22 Python
python logging重复记录日志问题的解决方法
2018/07/12 Python
python实现大文件分割与合并
2019/07/22 Python
Python统计学一数据的概括性度量详解
2020/03/03 Python
日本亚马逊官方网站:Amazon.co.jp
2020/04/14 全球购物
室内设计实习自我鉴定
2013/09/25 职场文书
国贸类专业毕业生的求职信分享
2013/12/08 职场文书
学校学习雷锋活动总结
2014/07/03 职场文书
总经理助理岗位职责范本
2015/03/31 职场文书
幼儿园教师心得体会范文
2016/01/21 职场文书
上帝为你开了一扇窗之Tkinter常用函数详解
2021/06/02 Python
CentOS7设置ssh服务以及端口修改方式
2022/12/24 Servers