前言:最近在整理iOS项目组件的依赖问题,虽然在podfile.lock文件中能看到每个组件的依赖,但是如果能用图形表示出来就更好了,最终发现了
graphviz
,实现了效果,而且确实好用。
1. 简介
graphviz
实际上是一个绘图工具,可以根据dot脚本
画出各种图形,十分方便,我们利用它可以轻松完成多种图形的绘制工作。
直接写dot脚本太麻烦了,可以使用python
代码生成dot脚本,然后调用graphviz
软件解析,生成一张图片。先来看一个官网提供的示例,使用python写的代码如下:
import graphviz
# 创建图对象
g = graphviz.Graph('G', filename='process.gv', engine='sfdp')
# 画点连线
g.edge('run', 'intr')
g.edge('intr', 'runbl')
g.edge('runbl', 'run')
g.edge('run', 'kernel')
g.edge('kernel', 'zombie')
g.edge('kernel', 'sleep')
g.edge('kernel', 'runmem')
g.edge('sleep', 'swap')
g.edge('swap', 'runswap')
g.edge('runswap', 'new')
g.edge('runswap', 'runmem')
g.edge('new', 'runmem')
g.edge('sleep', 'runmem')
# 绘制
g.view()
生成的图片如下:
image.png
上面代码是生成了一张无向图,感觉是不是非常easy?而且这只是小试牛刀,像我们常见的有向图、流程图、UML图、二叉树都可以用它来实现。
2. 使用教程
2.1 电脑安装graphviz
使用homebrew安装graphviz
:
brew install graphviz
我这里报错了,报错信息如下:
python@3.9: the bottle needs the Apple Command Line Tools to be installed.
You can try to install from source with:
brew install --build-from-source python@3.9
Please note building from source is unsupported. You will encounter build
failures with some formulae. If you experience any issues please create pull
requests instead of asking for help on Homebrew's GitHub, Twitter or any other
official channels.
提示需要python@3.9,就按提示的导入下python@3.9:
brew install --build-from-source python@3.9
安装完成之后,再次使用homebrew安装graphviz
:
brew install graphviz
发现又报错了,错误信息如下:
==> Pouring pango-1.50.1.monterey.bottle.tar.gz
Error: No such file or directory @ rb_sysopen - /Users/xxx/Library/Caches/Homebrew/downloads/45dd5f64fdc56ee8049ab1725a08fb09aaca10b397794db1e7f89a3f495bff5c--pango-1.50.1.monterey.bottle.tar.gz
那我们就先手动导入依赖的pango
brew install pango
导入成功之后,再次导入graphviz
brew install graphviz
完事儿后在终端中输入dot -V
,如果能够正常输出类似下面的版本信息就说明没问题了:
dot - graphviz version 2.50.0 (20211204.2007)
2.2 dot初体验
我们可以手动创建一个.dot
文件,然后输入下面命令保存:
digraph first2{
a;
b;
c;
d;
a->b;
b->d;
c->d;
}
然后终端输入下面命令,生成图片:
dot -Tpng 123.dot -o first.png
效果如下:
first.png
直接写dot的话有点不方便,python提供了graphviz
包,可以使用python来描述图形。
2.3 python安装graphviz包
使用pip3导入graphviz库:
pip3 install graphviz
现在我们可以直接在.py
文件中使用graphviz
了,而且官方文档很详细,也提供了很多例子,这里就一一列举了,具体可以查看:https://graphviz.readthedocs.io/en/stable/manual.html。
网友评论