python graphviz的使用(画图工具)

本文介绍了Python中使用Graphviz进行图形绘制的详细步骤,包括在Windows和CentOS7上的安装配置,以及如何创建无向图、解决字体乱码问题。同时,概述了节点、边和图的属性设置,提供了官方文档链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考文章1

参考文章2

一、graphviz安装及配置

graphviz实际上是一个绘图工具,可以根据dot脚本画出树形图等。

 

1、windows安装
  1. 安装graphviz软件:https://graphviz.gitlab.io/_pages/Download/Download_windows.html
  2. 配置环境变量:把bin文件夹的路径加入到环境变量path里
  3. 安装python的graphviz模块:pip install graphviz

 

2、linux centos7安装
  1. yum下载graphviz软件:yum -y install graphviz
  2. 安装python的graphviz模块:pip install graphviz
  3. 测试:which dot

 

二、graphviz的使用

graphviz 有两种图,一种是无向图 graph ,边用 -- 连接,一种是有向图 digraph ,边用 -> 连接

1、初步认识
from graphviz import Digraph

# 实例化一个Digraph对象(有向图),name:生成的图片的图片名,format:生成的图片格式
dot = Digraph(name="MyPicture", comment="the test", format="png")

# 生成图片节点,name:这个节点对象的名称,label:节点名,color:画节点的线的颜色
dot.node(name='a', label='Ming', color='green')
dot.node(name='b', label='Hong', color='yellow')
dot.node(name='c', label='Dong')

# 在节点之间画线,label:线上显示的文本,color:线的颜色
dot.edge('a', 'b', label="ab\na-b", color='red')
# 一次性画多条线,c到b的线,a到c的线
dot.edges(['cb', 'ac'])

# 打印生成的源代码
print(dot.source)

#
### 使用Graphviz绘制图形的方法 为了利用Graphviz创建图表,需先安装Graphviz工具包以及Python中的`graphviz`库。对于Windows用户来说,可以从指定链接下载适合版本的Graphvis MSI安装文件[^3]。 一旦安装完毕,在Python环境中可以通过pip命令轻松安装对应的接口库: ```bash pip install graphviz ``` 接着,通过编写简单的DOT语言代码来定义想要展示的关系图或流程图。下面是一个使用PythonGraphviz生成简单有向图的例子: ```python from graphviz import Digraph dot = Digraph(comment='The Round Table') dot.node('A', 'King Arthur') dot.node('B', 'Sir Bedevere the Wise') dot.node('L', 'Sir Lancelot the Brave') dot.edges(['AB', 'AL']) dot.edge('B', 'L', constraint='false') print(dot.source) dot.render('test-output/round-table.gv', view=True) ``` 上述代码片段展示了如何构建一个包含三个节点(人物角色)及其之间关系的有向图,并保存为名为`round-table.gv`的文件,同时打开查看结果图像[^2]。 除了基本的操作外,还可以调整更多属性来自定义样式,比如改变边的颜色、宽度或者设置节点形状等特性。此外,Graphviz内置了几种不同的布局算法供选择,如`dot`, `neato`, `twopi`, `circo` 和 `fdp`,每种都有各自的特点适用于不同类型的数据集[^5]。 最后值得注意的是,虽然这里主要讨论了基于Python环境下的应用案例,但实际上只要能够产生合法的DOT格式字符串,任何编程语言都可以用来控制Graphviz进行绘图工作[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值