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 相关文章推荐
使用graphics.py实现2048小游戏
Mar 10 Python
在Python下尝试多线程编程
Apr 28 Python
Python文件操作之合并文本文件内容示例代码
Sep 19 Python
Python实现多进程共享数据的方法分析
Dec 04 Python
对numpy中轴与维度的理解
Apr 18 Python
python删除文本中行数标签的方法
May 31 Python
Python通过for循环理解迭代器和生成器实例详解
Feb 16 Python
24式加速你的Python(小结)
Jun 13 Python
浅谈PyTorch的可重复性问题(如何使实验结果可复现)
Feb 20 Python
Python模块相关知识点小结
Mar 09 Python
查看keras的默认backend实现方式
Jun 19 Python
Qt自定义Plot实现曲线绘制的详细过程
Nov 02 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/10/23 PHP
php通过header发送自定义数据方法
2018/01/18 PHP
Laravel 5.4.36中session没有保存成功问题的解决
2018/02/19 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
node.js chat程序如何实现Ajax long-polling长链接刷新模式
2012/03/13 Javascript
js三种排序算法分享
2012/08/16 Javascript
JavaScript按位运算符的应用简析
2014/02/04 Javascript
返回顶部按钮响应滚动且动态显示与隐藏
2014/10/14 Javascript
JS设置cookie、读取cookie、删除cookie
2015/04/17 Javascript
jquery中object对象循环遍历的方法
2015/12/18 Javascript
jQuery实现输入框邮箱内容自动补全与上下翻动显示效果【附demo源码下载】
2016/09/20 Javascript
把json格式的字符串转换成javascript对象或数组的方法总结
2016/11/03 Javascript
开源免费天气预报接口API及全国所有地区代码(国家气象局提供)
2016/12/26 Javascript
jquery表单验证插件validation使用方法详解
2017/01/20 Javascript
JS实现的DIV块来回滚动效果示例
2017/02/07 Javascript
使用typescript开发angular模块并发布npm包
2018/04/19 Javascript
Vue Element 分组+多选+可搜索Select选择器实现示例
2018/07/23 Javascript
JS数组进阶示例【数组的几种函数用法】
2020/01/16 Javascript
Vue+elementUI实现多图片上传与回显功能(含回显后继续上传或删除)
2020/03/23 Javascript
理解Python垃圾回收机制
2016/02/12 Python
Tensorflow中的placeholder和feed_dict的使用
2018/07/09 Python
python opencv捕获摄像头并显示内容的实现
2019/07/11 Python
详解将Python程序(.py)转换为Windows可执行文件(.exe)
2019/07/19 Python
python字符串替换re.sub()方法解析
2019/09/18 Python
Python之多进程与多线程的使用
2021/02/23 Python
荷兰音乐会和音乐剧门票订购网站:Topticketshop
2019/08/27 全球购物
MVC的各个部分都有那些技术来实现?如何实现?
2016/04/21 面试题
信息技术教学反思
2014/02/12 职场文书
人力资源部门的主要职能
2014/02/22 职场文书
生产助理岗位职责
2014/06/18 职场文书
奥巴马上海演讲稿
2014/09/10 职场文书
小学四年级班主任工作经验交流材料
2015/11/02 职场文书
小学学习委员竞选稿
2015/11/20 职场文书
利用python做表格数据处理
2021/04/13 Python
Python实现制作销售数据可视化看板详解
2021/11/27 Python
面试官问我Mysql的存储引擎了解多少
2022/08/05 MySQL