6.2. 使用Graphviz绘图#
Graphviz(Graph Visualization Software)是一个开源的图形可视化软件, 它能够从简单的文本文件描述中生成复杂的图形和网络。 它使用一种名为 DOT 的描述语言来定义图形,使得用户可以专注于内容而非布局和设计。
Graphviz 的主要特点和用途包括:
灵活的渲染功能:Graphviz 可以生成多种格式的图形文件,包括 raster 和 vector 格式,如 PNG、PDF、SVG 等。
自动布局:Graphviz 的一个主要特点是其自动布局能力。用户只需定义图的元素和它们之间的关系,Graphviz 就能够自动计算出合适的布局。
扩展性:Graphviz 提供了多种工具和库,可以用于各种应用,如 Web 服务、生成报告,或与其他软件的集成。
广泛的应用:Graphviz 被广泛用于各种领域,包括软件工程(如代码依赖关系图)、网络设计和分析、生物信息学(如基因表达网络)等。
Graphviz 的优势在于快速、灵活且高效。 尽管它的学习曲线可能相对较陡峭,但一旦掌握,你将发现它是一个非常强大的工具。
6.2.1. 安装Graphviz#
Graphviz 可以通过包管理器进行安装,如 apt
、 yum
、 brew
等。
这里以 Ubuntu 为例,使用 apt
包管理器安装 Graphviz:
# Ubuntu
sudo apt-get install graphviz
安装完成后, 在命令行中输入 dot -V
来验证是否安装成功.
user@host:~$ dot -V
dot - graphviz version 2.43.0 (0)
6.2.2. 修改项目配置文件#
Graphviz在Sphinx中是内置扩展,不需要额外的安装。
修改项目配置文件 conf.py
, 在其中开启Graphviz插件并设置一些相关的参数:
# 通过配置开启graphviz插件
extensions = ['sphinx.ext.graphviz']
# 设置graphviz_dot路径
graphviz_dot = 'dot'
# 设置graphviz_dot_args的参数, 这里设置了默认字体
graphviz_dot_args = ['-Gfontname=Georgia',
'-Nfontname=Georgia',
'-Efontname=Georgia']
# 输出格式, 默认png,这里使用svg矢量图
graphviz_output_format = 'svg'
这里 graphviz_dot
的值是 dot
, 为了不把绝对路径写到配置文件中,
防止其他人的路径不一样, 所以这里要求 dot
这个程序在环境变量中, 能够直接使用。
6.2.3. 画图#
在Sphinx文档中使用graphviz段来插入图片, 可以在文档中直接使用dot语言或者使用dot文档.
Example:
.. graphviz::
digraph abc{
a;
b;
c;
d;
a -> b;
b -> d;
c -> d;
}
效果:
digraph abc{ a; b; c; d; a -> b; b -> d; c -> d; }或者使用一个dot文档:
.. graphviz::external.dot
参考: