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模块之re正则表达式详解

    python模块之re正则表达式详解

    正则表达式是一种小型的、高度专业化的编程语言,并不是python中特有的,是许多编程语言中基础而又重要的一部分。在python中,主要通过re模块来实现。这篇文章主要介绍了python模块之re正则表达式详解,需要的朋友可以参考下
    2017-02-02
  • 浅析Python中的for 循环

    浅析Python中的for 循环

    这篇文章主要介绍了浅析Python中的for 循环的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-06-06
  • 通过pykafka接收Kafka消息队列的方法

    通过pykafka接收Kafka消息队列的方法

    今天小编就为大家分享一篇通过pykafka接收Kafka消息队列的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • python中类变量与成员变量的使用注意点总结

    python中类变量与成员变量的使用注意点总结

    python 的类中主要会使用的两种变量:类变量与成员变量。类变量是类所有实例化对象共有的,而成员变量是每个实例化对象自身特有的。下面这篇文章主要给大家介绍了在python中类变量与成员变量的一些使用注意点,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-04-04
  • Python人工智能之路 之PyAudio 实现录音 自动化交互实现问答

    Python人工智能之路 之PyAudio 实现录音 自动化交互实现问答

    关于音频, PyAudio 这个库, 可以实现开启麦克风录音, 可以播放音频文件等等。文章介绍了如何使用Python第三方库PyAudio进行麦克风录音然后自动播放已经合成的语音实现语音交互回答,需要的朋友可以参考下
    2019-08-08
  • Python轻松破解加密压缩包教程详解

    Python轻松破解加密压缩包教程详解

    相信大家都遇到过这种情况,下载文件的时候遇到压缩包又没有密码,或者说自己设置的加密密码,但是忘记了,就很难受。下面就将为大家介绍如何解决这一问题
    2021-12-12
  • Python xlwings插入Excel图片的实现方法

    Python xlwings插入Excel图片的实现方法

    这篇文章主要介绍了Python xlwings插入Excel图片的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • 关于Python中Math库的使用

    关于Python中Math库的使用

    这篇文章主要介绍了关于Python中Math库的使用,math 库是 Python 提供的内置数学类函数库,因为复数类型常用于科学计算,需要的朋友可以参考下
    2023-04-04
  • 利用Python抓取行政区划码的方法

    利用Python抓取行政区划码的方法

    做项目的时候会需要用到各个行政区划的代码,最近就碰巧遇到有这个需求,于是就上网搜了一下,测试后分享给大家,这篇文章就给大家分享了利用Python抓取行政区划码的示例代码,有需要的朋友们可以参考借鉴,下面跟着小编一起去学习学习吧。
    2016-11-11
  • Mac上Python使用ffmpeg完美解决方案(避坑必看!)

    Mac上Python使用ffmpeg完美解决方案(避坑必看!)

    ffmpeg是一个强大的开源命令行多媒体处理工具,下面这篇文章主要给大家介绍了关于Mac上Python使用ffmpeg完美解决方案的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-02

最新评论