Graphviz 安装并使用 (Python)
概述#
Graphviz 是一款由 AT&T Research 和 Lucent Bell 实验室开源的可视化图形工具,可以很方便的用来绘制结构化的图形网络,支持多种格式输出。Graphviz 输入是一个用 dot 语言编写的绘图脚本,通过对输入脚本的解析,分析出其中的点、边及子图,然后根据属性进行绘制。Graphviz layout 以简单的文本语言描述图形,并以实用的格式制作图表,如用于网页的 images 和 SVG ;用于放入在其它文件中或显示在交互式图形浏览器中的 PDF 和 Postscript 。——可视化图形软件 Graphviz
对于 Python 而言,也有一个 Graphviz 库与该工具对应,使用 Graphviz 库可以使用 Python 的语法生成 dot 语言绘图脚本,并调用 Graphviz 工具生成图片并保存。但是由于 Graphviz 库并不是独立工作的库,它需要连接 Graphviz 工具来联合工作,也就是说当你需要使用 Graphviz 库时必须安装 Graphviz 工具并设置好 Python 调用 Graphviz 工具的接口。
Graphviz 工具安装#
如果你想要了解 Graphviz 工具,你可以进入 Graphviz 官网。
在官网中我们可以找到 Graphviz 工具的安装包,这里以 Windows 系统为例,安装包连接点我访问。
这 2 个玩意都可以,第一个是安装包,操作就和安装其他软件一样,不过安装时要记一下安装路径,后面有用。
如果是下载压缩包的话,也是找个位置解压,然后记一下文件路径。
接下来要把 Graphviz 工具的 bin 目录加到环境变量 PATH 中,像这样。
接下来测试下是否安装成功,打开 cmd 命令窗口,输入命令:
dot -version
如果你看到了 cmd 输出这堆东西(版本号及相关信息),证明 Graphviz 工具安装成功。
Graphviz 库安装#
IDLE#
直接在 cmd 中输入以下命令就行,然后等上一会。
pip install graphviz
anaconda#
conda install graphviz
至关重要的一步#
接下来完成以下 2 个设置,Python 才能调用 Graphviz 工具。首先打开 cmd 语句输入以下命令:
echo process1 = subprocess.Popen(command1,stdout=subprocess.PIPE,shell=True)
接下来去你的 Python 安装路径下,找到文件 subprocess.py。
打开,找到 Popen(object) 类。
找到这个类的 init 方法,把 shell=False 修改为 shell=True。
改好之后,创建个文件,粘贴以下代码测试下能不能用。
from graphviz import Digraph
dot = Digraph('测试')
dot.node("1","Life's too short")
dot.node("2","I learn Python")
dot.edge('1','2')
dot.view()
如果看到这玩意,说明你的 graphviz 库可以正常工作了。
基础用法#
当我们使用 Python 的任何库时,首先都需要把模块包含进来,使用这句代码。
from graphviz import Digraph
接下来我们就需要一个对象来作为生成 DOT 脚本的载体,通过这个语句实例化一个图形对象。
对象 = Digraph('对象名')
node() 方法可以在对象中生成一个结点,语法如下:
对象.node("结点名","结点内容")
edge() 方法可以添加一条边,语法如下:
对象.edge('结点名1','结点名2')
在经过这些操作后,dot 脚本就会被自动生成,可以在交互式页面看下具体内容。
当然这些代码你可以复制出来,然后放到 Graphviz 工具里,也是可以运行的,如果你会 dot 语法可以直接在工具里写。
然后使用这个代码就能把图片保存出来,并查看了。
对象.view(filename="文件名", directory="输出路径")
生成结果会是一个 gv 文件保存 dot 脚本,以及一个某种格式保存的图片。
具备这些就可以使用 Graphviz 库和 Graphviz 工具,使用 Python 的代码画朴素而耐看的拓扑图了。更多进阶用法参考博客——python graphviz的使用(画图工具),里面各种参数都介绍得非常详细。
参考资料#
Graphviz
python graphviz的使用(画图工具)
python3 graphviz入门教程
Graphviz 画图教程(Python)
FileNotFoundError: WinError 2 系统找不到指定的文件 graphviz
可视化图形软件 Graphviz
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)