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实现方便使用的级联进度信息实例
May 05 Python
numpy数组拼接简单示例
Dec 15 Python
python正则实现提取电话功能
Feb 24 Python
Python统计python文件中代码,注释及空白对应的行数示例【测试可用】
Jul 25 Python
Python根据成绩分析系统浅析
Feb 11 Python
Python开发网站目录扫描器的实现
Feb 21 Python
解决python super()调用多重继承函数的问题
Jun 26 Python
Python Django基础二之URL路由系统
Jul 18 Python
对Pytorch神经网络初始化kaiming分布详解
Aug 18 Python
CentOS7下安装python3.6.8的教程详解
Jan 03 Python
pycharm实现在子类中添加一个父类没有的属性
Mar 12 Python
python怎么调用自己的函数
Jul 01 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 中的类
2006/10/09 PHP
php 分页原理详解
2009/08/21 PHP
对淘宝URL中ID提取的PHP代码
2013/09/01 PHP
php生成短网址示例
2014/05/05 PHP
举例讲解PHP面对对象编程的多态
2015/08/12 PHP
php基于 swoole 实现的异步处理任务功能示例
2019/08/13 PHP
浏览器无法运行JAVA脚本的解决方法
2008/01/09 Javascript
jQuery each()方法的使用方法
2010/03/18 Javascript
利用腾讯的ip地址库做ip物理地址定位
2010/07/24 Javascript
用JS判断IE版本的代码 超管用!
2011/08/09 Javascript
javascript/jquery获取地址栏url参数的方法
2014/03/05 Javascript
纯js实现遮罩层效果原理分析
2014/05/27 Javascript
jQuery+jRange实现滑动选取数值范围特效
2015/03/14 Javascript
jQuery实现网站添加高亮突出显示效果的方法
2015/06/26 Javascript
Angular 组件之间的交互的示例代码
2018/03/24 Javascript
深入浅析js原型链和vue构造函数
2018/10/25 Javascript
Vue实现移动端页面切换效果【推荐】
2018/11/13 Javascript
Node.js中package.json中库的版本号(~和^)
2019/04/02 Javascript
Vue代码整洁之去重方法整理
2019/08/06 Javascript
jQuery 隐藏/显示效果函数用法实例分析
2020/05/20 jQuery
[01:14]3.19DOTA2发布会 三代刀塔人第二代
2014/03/25 DOTA
基于python的Tkinter编写登陆注册界面
2017/06/30 Python
Windows系统下多版本pip的共存问题详解
2017/10/10 Python
使用实现pandas读取csv文件指定的前几行
2018/04/20 Python
Anaconda下安装mysql-python的包实例
2018/06/11 Python
详解Python字典小结
2018/10/20 Python
在pycharm中使用git版本管理以及同步github的方法
2019/01/16 Python
Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加签验签
2019/12/04 Python
python随机模块random的22种函数(小结)
2020/05/15 Python
英国DIY汽车维修配件网站:DIY Car Service Parts
2019/08/30 全球购物
技校毕业生自荐信
2014/06/03 职场文书
经典爱情感言
2015/08/03 职场文书
大学生村官工作心得体会
2016/01/23 职场文书
Django使用redis配置缓存的方法
2021/06/01 Redis
解析Redis Cluster原理
2021/06/21 Redis
关于Python中进度条的六个实用技巧分享
2022/04/05 Python