赞
踩
摘要本文会介绍使用 Graphviz 来绘制树形图。同时介绍使用 Python 中的 graphviz 来简单 Graphviz 的使用。
简介
Graphviz 是一个绘图工具,可以根据 dot 脚本画出树形图等。本文会介绍 graphviz 的简单使用,使用 graphviz 来创建 dot 文件来绘制树形图。本文还会通过几个 graphviz 的例子,来介绍 graphviz 的使用。
参考资料
Graphviz 的中文文档,Graphviz 中文文档
Dot 语言介绍(想要更多了解的时候可以查看),Graphviz Dot 语言介绍
Python Graphviz 的入门文档,Graphviz User Guide
Python Graphviz 的 Example 介绍,Graphviz 的例子
Graphviz 的简单介绍
Graphviz 编译的源文件是 dot 文件。我们通过书写 dot 文件,来获得不同的树状图。首先需要安装 Graphviz,可以通过下面的链接进行安装,Graphviz Download。关于 Graphviz 的说明,可以参考这个链接,有详细的例子解释,Graphviz 中文文档。
绘制简单树形图
我们将如下代码保存为 graph01.dot 文件:
digraph G {
main -> parse -> execute;
main -> init;
main -> cleanup;
execute -> make_string;
execute -> printf;
execute -> compare;
}
接着使用命令 dot -Tjpg ./awesome_project/graph.dot -o graph01.jpg 编译,可以得到名为 graph01.jpg 的图片,图片内容如下所示。
绘制更加复杂的树形图
上面是一个简单的树状图的绘制,下面我们来看一个稍微复杂的情况,有以下的几个需求:
给 node 和 edge 添加格式,颜色,加粗,是否虚线;
支持中文,在 node 上指定 fontname 即可,fontname="Microsoft Yahei"
指定箭头的方向,这里在连接部分使用 dir=none, dir=both, dir=forward, dir=back;
我们直接看一下最终的代码:
digraph G {
main [shape=box];
main -> parse [weight=8];
parse-> execute;
main -> init [style=dotted, dir = none];
main -> cleanup [dir = both];
execute -> {make_string, printf};
init -> make_string;
edge [color=red];
main -> printf [style=bold, label="100 times"];
make_string [label = "make a\nstring"];
node [shape=box, style=filled,color=".7, .3, 1.0", fontname="Microsoft Yahei"];
execute -> 比较;
}
最终的效果如下所示:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。