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 命令窗口,输入命令:

Copy Highlighter-hljs
dot -version


如果你看到了 cmd 输出这堆东西(版本号及相关信息),证明 Graphviz 工具安装成功。

Graphviz 库安装#

IDLE#

直接在 cmd 中输入以下命令就行,然后等上一会。

Copy Highlighter-hljs
pip install graphviz

安装完之后,使用 “pip list” 确认下成功了没。

anaconda#

打开这玩意。

输入命令:

Copy Highlighter-hljs
conda install graphviz

等上一会儿,安装好后打开 anaconda 检查下。

至关重要的一步#

接下来完成以下 2 个设置,Python 才能调用 Graphviz 工具。首先打开 cmd 语句输入以下命令:

Copy Highlighter-hljs
echo process1 = subprocess.Popen(command1,stdout=subprocess.PIPE,shell=True)

接下来去你的 Python 安装路径下,找到文件 subprocess.py

打开,找到 Popen(object) 类。

找到这个类的 init 方法,把 shell=False 修改为 shell=True

改好之后,创建个文件,粘贴以下代码测试下能不能用。

Copy Highlighter-hljs
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 的任何库时,首先都需要把模块包含进来,使用这句代码。

Copy Highlighter-hljs
from graphviz import Digraph

接下来我们就需要一个对象来作为生成 DOT 脚本的载体,通过这个语句实例化一个图形对象。

Copy Highlighter-hljs
对象 = Digraph('对象名')

node() 方法可以在对象中生成一个结点,语法如下:

Copy Highlighter-hljs
对象.node("结点名","结点内容")

edge() 方法可以添加一条边,语法如下:

Copy Highlighter-hljs
对象.edge('结点名1','结点名2')

在经过这些操作后,dot 脚本就会被自动生成,可以在交互式页面看下具体内容。

当然这些代码你可以复制出来,然后放到 Graphviz 工具里,也是可以运行的,如果你会 dot 语法可以直接在工具里写。

然后使用这个代码就能把图片保存出来,并查看了。

Copy Highlighter-hljs
对象.view(filename="文件名", directory="输出路径")

生成结果会是一个 gv 文件保存 dot 脚本,以及一个某种格式保存的图片。

具备这些就可以使用 Graphviz 库和 Graphviz 工具,使用 Python 的代码画朴素而耐看的拓扑图了。更多进阶用法参考博客——python graphviz的使用(画图工具),里面各种参数都介绍得非常详细。

参考资料#

Graphviz
python graphviz的使用(画图工具)
python3 graphviz入门教程
Graphviz 画图教程(Python)
FileNotFoundError: WinError 2 系统找不到指定的文件 graphviz
可视化图形软件 Graphviz

posted @   乌漆WhiteMoon  阅读(34916)  评论(0编辑  收藏  举报
编辑推荐:
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
点击右上角即可分享
微信分享提示
CONTENTS