当前位置: 首页 > 编程笔记 >

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

长孙阳州
2023-03-14
本文向大家介绍Python调用graphviz绘制结构化图形网络示例,包括了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绘制结构化图形网络示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 4.9 绘制网络结构图 CaseFile工具用来绘制网络结构图。使用该工具能快速添加和连接,并能以图形界面形式灵活的构建网络结构图。本节将介绍Maltego CaseFile的使用。 在使用CaseFile工具之前,需要修改系统使用的Java和Javac版本。因为CaseFile工具是用Java开发的,而且该工具必须运行在Java1.7.0版本上。但是在Kali Linux中,安装了JDK6和JD

  • 本文向大家介绍python绘制规则网络图形实例,包括了python绘制规则网络图形实例的使用技巧和注意事项,需要的朋友参考一下 我就废话不多说,直接上代码吧! 运行结果 注:random_regular_graph(d, n)方法可以生成一个含有n个节点,每个节点有d个邻居节点的规则图。本程序中生成了一个含有10个节点,每个节点有4个邻居节点的图形。 以上这篇python绘制规则网络图形实例就是小

  • 问题内容: 我正在尝试将一些简单的图形绘制到框架上。我还希望能够从主要方法中调整要绘制的内容。例如,设置要打印的String变量或矩形的坐标。 我似乎遇到的问题是,可以在设置类变量之前调用该方法。如何在绘制到屏幕之前更改此代码以设置/ 变量? 谢谢 问题答案: 从FrameTest类中删除test_string。使用set方法直接设置test_string。参见示例:

  • 本文向大家介绍使用Python的networkx绘制精美网络图教程,包括了使用Python的networkx绘制精美网络图教程的使用技巧和注意事项,需要的朋友参考一下 最近因为数学建模3天速成Python,然后做了一道网络的题,要画网络图。在网上找了一些,发现都是一些很基础的丑陋红点图,并且关于网络的一些算法也没有讲,于是自己进http://networkx.github.io/学习了一下。以下仅

  • 本文向大家介绍php使用GD2绘制几何图形示例,包括了php使用GD2绘制几何图形示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php使用GD2绘制几何图形的方法。分享给大家供大家参考,具体如下: 使用GD2函数不仅可以绘制线条图形,而且可以绘制填充图形,如填充圆形,填充矩形等。下面对GD2中常用的填充图形的绘制方法进行介绍。 bool imagefill( resource ima

  • 问题内容: 哪些网络图使用以下开源Java图形绘制框架?该图将少于1000个节点。 1)具有平行边缘 2)单个图形内的有向和无向边缘 3)由图像表示的节点 4)用户与节点和边缘的交互 5)动态添加/删除节点和边缘 6)在节点和边缘上有多个标签,不同级别的用户可以关闭/打开标签。(例如绘制图层并关闭/在图层上) 7)不同的布局算法以显示星形,环形,网格拓扑 我评估了荣格和Prefuse。这是我为我的