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生成XML的方法实例
Mar 21 Python
python机器学习之神经网络(一)
Dec 20 Python
Python实现KNN邻近算法
Jan 28 Python
Python 十六进制整数与ASCii编码字符串相互转换方法
Jul 09 Python
python中协程实现TCP连接的实例分析
Oct 14 Python
nohup后台启动Python脚本,log不刷新的解决方法
Jan 14 Python
Python列表(List)知识点总结
Feb 18 Python
python3.6+selenium实现操作Frame中的页面元素
Jul 16 Python
Python利用FFT进行简单滤波的实现
Feb 26 Python
Pycharm中安装wordcloud等库失败问题及终端通过pip安装的Python库如何添加到Pycharm解释器中(推荐)
May 10 Python
Python键鼠操作自动化库PyAutoGUI简介(小结)
May 17 Python
详解Django自定义图片和文件上传路径(upload_to)的2种方式
Dec 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来实现网络服务
2009/09/15 PHP
PHP中mb_convert_encoding与iconv函数的深入解析
2013/06/21 PHP
php实现当前页面点击下载文件的简单方法
2016/09/22 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
2018/06/16 PHP
使javascript也能包含文件
2006/10/26 Javascript
jquery实现点击文字可编辑并修改保存至数据库
2014/04/15 Javascript
js常用数组操作方法简明总结
2014/06/20 Javascript
JS+CSS模拟可以无刷新显示内容的留言板实例
2015/03/03 Javascript
js完美实现@提到好友特效(兼容各大浏览器)
2015/03/16 Javascript
在JS中操作时间之getUTCMilliseconds()方法的使用
2015/06/10 Javascript
Bootstrap每天必学之表单
2015/11/23 Javascript
复杂的javascript窗口分帧解析
2016/02/19 Javascript
Bootstrap导航条的使用和理解3
2016/12/14 Javascript
angular+ionic返回上一页并刷新页面
2017/08/08 Javascript
JavaScript设计模式之模板方法模式原理与用法示例
2018/08/07 Javascript
vue.js 双层嵌套for遍历的方法详解, 类似php foreach()
2018/09/07 Javascript
JS中的算法与数据结构之列表(List)实例详解
2019/08/16 Javascript
Python UnicodeEncodeError: 'gbk' codec can't encode character 解决方法
2015/04/24 Python
Python 递归函数详解及实例
2016/12/27 Python
python 表达式和语句及for、while循环练习实例
2017/07/07 Python
Python3调用百度AI识别图片中的文字功能示例【测试可用】
2019/03/13 Python
python IDLE 背景以及字体大小的修改方法
2019/07/12 Python
Django CBV与FBV原理及实例详解
2019/08/12 Python
对Pytorch中Tensor的各种池化操作解析
2020/01/03 Python
Python操作Jira库常用方法解析
2020/04/10 Python
Python Dataframe常见索引方式详解
2020/05/27 Python
意大利体育用品网上商城:Nencini Sport
2016/08/18 全球购物
DVF官方网站:美国时装界尊尚品牌
2017/08/29 全球购物
Kiwi.com中国:找到特价机票并发现新目的地
2019/10/27 全球购物
Shell如何接收变量输入
2012/09/24 面试题
十岁生日家长答谢词
2014/01/17 职场文书
《绿色蝈蝈》教学反思
2014/03/02 职场文书
三十年同学聚会感言
2015/07/30 职场文书
公司借款担保书
2015/09/22 职场文书
2015年度考核个人工作总结
2015/10/24 职场文书
redis cluster支持pipeline的实现思路
2021/06/23 Redis