python graphviz画图详情

 更新时间:2022年01月25日 10:59:34   作者:L-M-Y  
这篇文章主要介绍了python graphviz画图详情,文章围绕graphviz画图的相关资料展开内容,并附有官方安装链接,需要的小伙伴可以参考一下,洗碗给对你有所帮助

前言:

最近要开始做课设来着,题目是哈夫曼编码,我琢磨着有什么办法可以打印出一棵树的结构(其实有一次实验,就要求打印树,那个时候就没能实现),偶然遇到了一篇博客,有提到graphviz这个库,我就扫了一眼,发现居然可以打印各种形状和流程图,直接激动到惊呆。

于是立马pip install graphviz,库很快下载,但就无论如何都画不了图,折腾了将近一个小时,才在大佬的一篇博客里发现,是需要给graphviz添加进环境变量里…

总之,虽说,出现问题的时候,心态挺崩的,但是,解决问题的那一刻,真的很快乐!

1.graphviz安装与配置

进入官网下载: https://graphviz.org/download/

(版本基本上不影响使用,随便一个就可以)

下载之后,会有一个安装过程,全部next即可,记得 勾选加入PATH !!!

如果没勾选,记得手动加入环境变量的path里,否则你就会像我一样,变得不幸。

而且, 添加完环境变量之后,还得重启编译器 ,否则没啥用。

加入之后是这样的:

2.dot和graphviz

dot

dot是一种文本图形描述语言,编写好的.dot文件可以被机器处理为图片,通常可以生成.png,.jpg,.pdf等格式。

graphviz

graphvizpython的一个开源库,dot的各种操作被包括在graphviz中。

graphviz可以用来画简单的流程图。

在我看来,就是用来画数据结构的树啊图啊超级方便。

作图:

step1:导入graphviz库

from graphviz import Digraph  # 导入graphviz库


step:创建一个表

dot = Digraph(name, comment)


添加点

dot.node(name, label)


点之间创建边

dot.edge(tail_name, head_name, label)


输出画的图

dot.view()


生成图片文件

print(dot.source) 
render(filename=None, directory=None, view=False, cleanup=False)
# 参数分别为文件名、文件保存路径、是否用默认程序打开渲染效果、是否在渲染后删除源文件


样例

from graphviz import Digraph  # 导入graphviz库

dot = Digraph("lmy's table", comment='The Test Table')  # 创建一个表

dot.node('A', 'Dot A')  # 添加一个点,点的名称为'Dot A'

dot.node('B', 'Dot B')

dot.node('C', 'Dot C')

dot.node('D', 'Dot D')

dot.edges(['AD', 'AC', 'BC'])  # 两点间创建边

dot.edge('B', 'C', 'test')
# dot.view(),此函数可以实时看到你画的图


# 获取DOT source源码的字符串形式
print(dot.source)
# // The Test Table
# digraph {
 
#   A [label="Dot A"]
#   B [label="Dot B"]
#   C [label="Dot C"]
#   A -> B
#   A -> C
#   A -> B
#   B -> C [label=test]
# }

# 保存source到文件,并提供Graphviz引擎
dot.render('test-output/lmy.gv', view=True)

运行结果:

可以看到生成了一个pdf文件

到此这篇关于python graphviz画图详情的文章就介绍到这了,更多相关python graphviz画图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python网络通讯之TCP协议实现服务器和客户端实例

    Python网络通讯之TCP协议实现服务器和客户端实例

    这篇文章主要介绍了Python网络通讯之TCP协议实现服务器和客户端实例, socket编程一种独立于协议的网络编程接口,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作,需要的朋友可以参考下
    2023-08-08
  • Python Pandas数据中对时间的操作

    Python Pandas数据中对时间的操作

    这篇文章主要介绍了Python Pandas数据中对时间的操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • python+opencv图像分割实现分割不规则ROI区域方法汇总

    python+opencv图像分割实现分割不规则ROI区域方法汇总

    这篇文章主要介绍了python+opencv图像分割实现分割不规则ROI区域方法汇总,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • python中的迭代器,生成器与装饰器详解

    python中的迭代器,生成器与装饰器详解

    大家好,本篇文章主要讲的是python中的迭代器,生成器与装饰器详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-02-02
  • PyQt5 QThread倒计时功能的实现代码

    PyQt5 QThread倒计时功能的实现代码

    这篇文章主要介绍了PyQt5 QThread倒计时功能的实现代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • python中关于range()函数反向遍历的几种表达

    python中关于range()函数反向遍历的几种表达

    这篇文章主要介绍了python中关于range()函数反向遍历的几种表达,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • python一招完美搞定Chromedriver的自动更新问题

    python一招完美搞定Chromedriver的自动更新问题

    这篇文章主要介绍了python一招完美搞定Chromedriver的自动更新,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-09-09
  • Django+uni-app实现数据通信中的请求跨域的示例代码

    Django+uni-app实现数据通信中的请求跨域的示例代码

    这篇文章主要介绍了Django+uni-app实现数据通信中的请求跨域的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • Python深度学习实战PyQt5安装与环境配置过程详解

    Python深度学习实战PyQt5安装与环境配置过程详解

    本系列面向 Python 小白,从零开始实战解说应用 QtDesigner 进行 PyQt5 的项目实战。什么叫从零开始?从软件安装、环境配置开始。不跳过一个细节,不漏掉一行代码,不省略一个例图
    2021-10-10
  • Win7上搭建Cocos2d-x 3.1.1开发环境

    Win7上搭建Cocos2d-x 3.1.1开发环境

    现在,越来越多的公司采用Cocos2d-x 3.0来开发游戏了,但是现在这样的文章并不多,所以打算写一系列来帮助初学者快速掌握Cocos2d-x 3.0。首先就从开发环境的大家说起吧
    2014-07-07

最新评论