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 23 Python
Python中使用多进程来实现并行处理的方法小结
Aug 09 Python
Python实现图片转字符画的示例代码
Aug 21 Python
Python标准库笔记struct模块的使用
Feb 22 Python
python文件拆分与重组实例
Dec 10 Python
python采集微信公众号文章
Dec 20 Python
Django框架使用内置方法实现登录功能详解
Jun 12 Python
linux环境中没有网络怎么下载python
Jul 07 Python
python 寻找离散序列极值点的方法
Jul 10 Python
windows环境中利用celery实现简单任务队列过程解析
Nov 29 Python
解决python中import文件夹下面py文件报错问题
Jun 01 Python
pycharm远程连接vagrant虚拟机中mariadb数据库
Jun 05 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
实用函数4
2007/11/08 PHP
PHP开发环境配置(MySQL数据库安装图文教程)
2010/04/28 PHP
PHP数组操作简单案例分析
2016/10/15 PHP
php实现生成code128条形码的方法详解
2017/07/19 PHP
javascript 函数式编程
2007/08/16 Javascript
Jquery下的26个实用小技巧(jQuery tips, tricks & solutions)
2010/03/01 Javascript
父子窗体间传递JSON格式的数据的代码
2010/12/25 Javascript
javascript级联下拉列表实例代码(自写)
2013/05/10 Javascript
js实现的切换面板实例代码
2013/06/17 Javascript
自己动手实现jQuery Callbacks完整功能代码详解
2013/11/25 Javascript
JavaScript实现找出数组中最长的连续数字序列
2014/09/03 Javascript
jQuery中offset()方法用法实例
2015/01/16 Javascript
JS实现漂亮的时间选择框效果
2016/08/20 Javascript
vue.js指令v-for使用及索引获取
2016/11/03 Javascript
解决element UI 自定义传参的问题
2018/08/22 Javascript
教你搭建按需加载的Vue组件库(小结)
2019/07/29 Javascript
Vertx基于EventBus发送接受自定义对象
2020/11/16 Javascript
[39:32]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS DT 第二场
2014/05/23 DOTA
Python实现将16进制字符串转化为ascii字符的方法分析
2017/07/21 Python
简单实现python画圆功能
2018/01/25 Python
python 列表递归求和、计数、求最大元素的实例
2018/11/28 Python
pyqt5 实现 下拉菜单 + 打开文件的示例代码
2019/06/20 Python
Python爬虫 bilibili视频弹幕提取过程详解
2019/07/31 Python
Python图像处理模块ndimage用法实例分析
2019/09/05 Python
python函数中将变量名转换成字符串实例
2020/05/11 Python
python判断变量是否为列表的方法
2020/09/17 Python
Python解析微信dat文件的方法
2020/11/30 Python
pycharm 如何取消连按两下shift出现的全局搜索
2021/01/15 Python
CSS3的文字阴影—text-shadow的使用方法
2012/12/25 HTML / CSS
css3动画效果小结(推荐)
2016/07/25 HTML / CSS
webView加载html图片遇到的问题解决
2019/10/08 HTML / CSS
机电一体化专业推荐信
2013/12/03 职场文书
酒店销售主管岗位职责
2014/01/04 职场文书
房屋买卖协议书范本
2014/04/10 职场文书
物业管理工作方案
2014/05/10 职场文书
《黄道婆》教学反思
2016/02/22 职场文书