结构化图形绘制利器Graphviz
2015-11-04 18:39
453 查看
引言
Graphviz的强大
示例
自动布局
附安装方法
版权声明:本文为 西风逍遥游 原创文章,转载请注明出处 西风世界 http://blog.csdn.net/xfxyy_sxfancy
Graphviz诞生于大名鼎鼎的贝尔实验室,最早是一款图自动布局工具,但其提供的dot脚本,对于结构化图形描述十分便捷,只需要编写对图形的描述,便可以自动生成合理布局的图片,非常方便。
在安装好graphviz后,我们将其保存成fsm.gv,然后执行指令:
这样就可以生成图片了,如下图:
dot - 层级布局,分层绘制,对于有向图十分适合
neato - 基于力的布局,适合无向图,节点间相互关系并不紧密,也没有规定的起点或终点的
circo - 环状布局
怎么样,官网上还有更多示例,可供参考:http://www.graphviz.org/Gallery.php
Windows下应该去官网下载其安装包:http://www.graphviz.org/Download.php
Graphviz的强大
示例
自动布局
附安装方法
版权声明:本文为 西风逍遥游 原创文章,转载请注明出处 西风世界 http://blog.csdn.net/xfxyy_sxfancy
引言
以前我在写博客的时候,最发愁的就是画图,尤其是一些数据结构的展示,或一些算法的图示。一般我是用手绘板,软件就用MyPaint,做出图后,往往调整和修改十分困难。Graphviz的强大
但自从我得知的Graphviz这款神器后,我便不再担心图形的绘制困难了。因为,这是一款脚本化的绘图工具,先用文本描述结构内容,再由计算机自动生成图片,方便快捷,比手绘精度又高,而且还容易修改。Graphviz诞生于大名鼎鼎的贝尔实验室,最早是一款图自动布局工具,但其提供的dot脚本,对于结构化图形描述十分便捷,只需要编写对图形的描述,便可以自动生成合理布局的图片,非常方便。
示例
例如下面这是一幅有限状态机图:digraph finite_state_machine { rankdir=LR; size="8,5" node [shape = doublecircle]; LR_0 LR_3 LR_4 LR_8; node [shape = circle]; LR_0 -> LR_2 [ label = "SS(B)" ]; LR_0 -> LR_1 [ label = "SS(S)" ]; LR_1 -> LR_3 [ label = "S($end)" ]; LR_2 -> LR_6 [ label = "SS(b)" ]; LR_2 -> LR_5 [ label = "SS(a)" ]; LR_2 -> LR_4 [ label = "S(A)" ]; LR_5 -> LR_7 [ label = "S(b)" ]; LR_5 -> LR_5 [ label = "S(a)" ]; LR_6 -> LR_6 [ label = "S(b)" ]; LR_6 -> LR_5 [ label = "S(a)" ]; LR_7 -> LR_8 [ label = "S(b)" ]; LR_7 -> LR_5 [ label = "S(a)" ]; LR_8 -> LR_6 [ label = "S(b)" ]; LR_8 -> LR_5 [ label = "S(a)" ]; }
在安装好graphviz后,我们将其保存成fsm.gv,然后执行指令:
dot ./fsm.gv -Tjpg -o fsm.jpg
这样就可以生成图片了,如下图:
自动布局
dot是其中的一种很常见的布局方式,表示的是层次布局法,下面就依次介绍几种常见的:dot - 层级布局,分层绘制,对于有向图十分适合
neato - 基于力的布局,适合无向图,节点间相互关系并不紧密,也没有规定的起点或终点的
circo - 环状布局
怎么样,官网上还有更多示例,可供参考:http://www.graphviz.org/Gallery.php
附:安装方法
Ubuntu很简单,直接就可以了:sudo apt-get install graphviz
Windows下应该去官网下载其安装包:http://www.graphviz.org/Download.php
相关文章推荐
- 注册表的组织结构
- 渗透技术一瞥(图)
- 图片引发的溢出危机(图)
- Lua教程(七):数据结构详解
- SQLSERVER的非聚集索引结构深度理解
- 调整SQLServer2000运行中数据库结构
- 解析从源码分析常见的基于Array的数据结构动态扩容机制的详解
- C#基础语法:结构和类区别详解
- 深入c# 类和结构的区别总结详解
- C#数据结构揭秘一
- c#结构和类的相关介绍
- C#中结构(struct)的部分初始化和完全初始化实例分析
- C#中类与结构的区别实例分析
- C#枚举类型与结构类型实例解析
- javascript实现表现、结构、行为分离的选项卡效果!
- 数据结构之Treap详解
- C++实现图的邻接矩阵存储和广度、深度优先遍历实例分析
- C++实现图的邻接表存储和广度优先遍历实例分析
- C#实现图形位置组合转换的方法
- C#实现判断图形文件格式的方法