美文网首页
graphviz的使用记录

graphviz的使用记录

作者: 沉江小鱼 | 来源:发表于2021-12-23 15:09 被阅读0次

前言:最近在整理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

相关文章

网友评论

      本文标题:graphviz的使用记录

      本文链接:https://www.haomeiwen.com/subject/rmshqrtx.html