Python调用graphviz绘制结构化图形网络示例

首先要下载: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

无向图

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

来个随机点的复杂点的图

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

绘制神经网络简易图

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绘制结构化图形网络示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Python实现决策树并且使用Graphvize可视化的例子

    一.什么是决策树(decision tree)--机器学习中的一个重要的分类算法 决策树是一个类似于数据流程图的树结构:其中,每个内部节点表示一个属性上的测试,每个分支代表一个属性输出,而每个树叶结点代表类或者类的分布,树的最顶层是根结点 根据天气情况决定出游与否的案例 二.决策树算法构建 2.1决策树的核心思路 特征选择:从训练数据的特征中选择一个特征作为当前节点的分裂标准(特征选择的标准不同产生了不同的特征决策树算法). 决策树生成:根据所选特征评估标准,从上至下递归地生成子节点,直到数据集

  • 解决使用export_graphviz可视化树报错的问题

    在使用可视化树的过程中,报错了.说是'dot.exe'not found in path 原代码: # import tools needed for visualization from sklearn.tree import export_graphviz import pydot #Pull out one tree from the forest tree = rf.estimators_[5] # Export the image to a dot file export_graphv

  • Python调用graphviz绘制结构化图形网络示例

    首先要下载: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.ed

  • Python调用Matplotlib绘制振动图、箱型图和提琴图

    目录 Matplotlib介绍 振动图 箱型图 提琴图 Matplotlib介绍 Matplotlib 是一款用于数据可视化的 Python 软件包,支持跨平台运行,它能够根据 NumPy  ndarray 数组来绘制 2D 图像,它使用简单.代码清晰易懂,深受广大技术爱好者喜爱. NumPy 是 Python 科学计算的软件包,ndarray 则是 NumPy 提供的一种数组结构. Matplotlib 由 John D. Hunter 在 2002 年开始编写, 2003 年 Matplot

  • python绘制BA无标度网络示例代码

    如下所示: #Copyright (c)2017, 东北大学软件学院学生 # All rightsreserved #文件名称:a.py # 作 者:孔云 #问题描述: #问题分析:.代码如下: import networkx as ne #导入建网络模型包,命名ne import matplotlib.pyplot as mp #导入科学绘图包,命名mp #BA scale-free degree network graphy BA=ne.barabasi_albert_graph(50,1)

  • Python数据分析之绘制ppi-cpi剪刀差图形

    目录 前言 ppi 和 cpi 数据获取 ppi-cpi 图形绘制 总结 前言 ppi-cpi 剪刀差大家可能都听说过,通过这个指标可以了解当前的经济运行状况,小编为了学习 python 的图形绘制,通过爬虫的方式获取到 ppi 和 cpi 的历史数据,然后通过 matplotlib 绘图工具将 ppi 数据和 cpi 数据同框展示,最后通过颜色填充来表示其中的差额部分.对于新手来讲,会学习到 python 的基础知识.爬虫以及图形绘制的知识. ppi 和 cpi 数据获取 既然是数据获取,就需

  • Python使用matplotlib绘制多个图形单独显示的方法示例

    本文实例讲述了Python使用matplotlib绘制多个图形单独显示的方法.分享给大家供大家参考,具体如下: 一 代码 import numpy as np import matplotlib.pyplot as plt #创建自变量数组 x= np.linspace(0,2*np.pi,500) #创建函数值数组 y1 = np.sin(x) y2 = np.cos(x) y3 = np.sin(x*x) #创建图形 plt.figure(1) ''' 意思是在一个2行2列共4个子图的图中,

  • python调用Matplotlib绘制分布点并且添加标签

    本文实例为大家分享了Python调用Matplotlib绘制分布点添加标签的具体代码,供大家参考,具体内容如下 添加标签的目的 代码 截图 目的 上文介绍了根据图像的大小作为坐标来绘制分布点图.老大又给了我一个任务,我绘制完,每次将图保存,发给她,但是图片中的点的坐标是不能显示了,所以她让我给每个点添加个label,而且label是该点的横纵坐标. 代码 import matplotlib.pyplot as plt from numpy.random import rand import nu

  • python使用Matplotlib绘制多种常见图形

    目录 柱状图 水平绘制柱状图 多个柱状图 叠加型柱状图 散点图 气泡图 直方图 箱线图 添加文字描述 添加文字描述 方法二 多个图形描绘 subplots 使用Pandas 绘图 Matplotlib官网如果想了解更多可查看官网. import numpy as np import matplotlib.pyplot as plt %matplotlib inline #写了这个就可以不用写plt.show() plt.rcParams['font.sans-serif']=['SimHei']

  • Python调用百度根据经纬度查询地址的示例代码

    如下所示: def locatebyLatLng(lat, lng, pois=0): ''' 根据经纬度查询地址 ''' items = {'location': str(lat) + ',' + str(lng), 'ak': '你自己申请的百度ak', 'output': 'json'} res = requests.get('http://api.map.baidu.com/geocoder/v2/', params=items) result = res.json() print(re

  • python调用其他文件函数或类的示例

    B.py调用A.py的函数或类 在同一个文件夹下 调用函数: A.py文件: def add(x,y): print('和为:%d'%(x+y)) B.py文件: import A A.add(1,2) 或 from A import add add(1,2) 调用类: A.py文件: class A: def __init__(self,xx,yy): self.x=xx self.y=yy def add(self): print("x和y的和为:%d"%(self.x+self.

  • Python调用scp向服务器上传文件示例

    最近做的项目中有一个小功能:在python中调用scp命令 使用ssh登录,然后将指定目录中的图片上传到服务器指定目录 网上搜了很多方法都没用,最后终于碰到一个可以成功上传的,特此记录 import paramiko # 用于调用scp命令 from scp import SCPClient # 将指定目录的图片文件上传到服务器指定目录 # remote_path远程服务器目录 # file_path本地文件夹路径 # img_name是file_path本地文件夹路径下面的文件名称 def u

随机推荐