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中for循环详解
Jan 17 Python
python使用xauth方式登录饭否网然后发消息
Apr 11 Python
Python实现拼接多张图片的方法
Dec 01 Python
Python实现的rsa加密算法详解
Jan 24 Python
Python使用pip安装pySerial串口通讯模块
Apr 20 Python
Django框架搭建的简易图书信息网站案例
May 25 Python
python字符串,元组,列表,字典互转代码实例详解
Feb 14 Python
Python实现企业微信机器人每天定时发消息实例
Feb 25 Python
Python API 操作Hadoop hdfs详解
Jun 06 Python
pycharm 代码自动补全的实现方法(图文)
Sep 18 Python
Pycharm常用快捷键总结及配置方法
Nov 14 Python
利用python实现后端写网页(flask框架)
Feb 28 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
解析csv数据导入mysql的方法
2013/07/01 PHP
php判断当前操作系统类型
2015/10/28 PHP
利用PHP判断文件是否为图片的方法总结
2017/01/06 PHP
js判断IE6/IE7/FF的代码[XMLHttpRequest]
2011/02/16 Javascript
改善用户体验的五款jQuery插件分享
2011/05/22 Javascript
JQuery通过Ajax提交表单并返回结果
2011/07/31 Javascript
js遍历td tr等html元素
2012/12/13 Javascript
DWR实现模拟Google搜索效果实现原理及代码
2013/01/30 Javascript
jQuery预加载图片常用方法
2015/06/15 Javascript
JavaScript必知必会(九)function 说起 闭包问题
2016/06/08 Javascript
JavaScript和jQuery获取input框的绝对位置实现方法
2016/10/13 Javascript
js 实现watch监听数据变化的代码
2019/10/13 Javascript
vue-cli创建的项目中的gitHooks原理解析
2020/02/14 Javascript
在 Vue 中编写 SVG 图标组件的方法
2020/02/24 Javascript
详解Vue中的MVVM原理和实现方法
2020/07/15 Javascript
vue-quill-editor 自定义工具栏和自定义图片上传路径操作
2020/08/03 Javascript
[48:31]完美世界DOTA2联赛PWL S3 DLG vs Phoenix 第二场 12.17
2020/12/19 DOTA
一道python走迷宫算法题
2018/01/22 Python
对sklearn的使用之数据集的拆分与训练详解(python3.6)
2018/12/14 Python
Python3.5局部变量与全局变量作用域实例分析
2019/04/30 Python
30秒学会30个超实用Python代码片段【收藏版】
2019/10/15 Python
HTML5对手机页面长按会粘贴复制禁用的解决方法
2016/07/19 HTML / CSS
数控专业个人求职信范例
2013/11/29 职场文书
旷课检讨书大全
2014/01/21 职场文书
致1500米运动员广播稿
2014/02/07 职场文书
机修工工作职责
2014/02/21 职场文书
慰问敬老院活动总结
2014/04/26 职场文书
数学教师求职信范文
2015/03/20 职场文书
2016年寒假学习心得体会
2015/10/09 职场文书
初一语文教学反思
2016/03/03 职场文书
从贫穷到富有,是知识技能和学习力的差别
2019/08/20 职场文书
JavaScript如何利用Promise控制并发请求个数
2021/05/14 Javascript
matlab xlabel位置的设置方式
2021/05/21 Python
PyTorch 实现L2正则化以及Dropout的操作
2021/05/27 Python
为什么在foreach循环中JAVA集合不能添加或删除元素
2021/06/11 Java/Android
深入理解python协程
2021/06/15 Python