linux dot命令,linux绘图工具之dot

有时候我们在linux下也会有绘制流程图的需求,你是不是也愁找不到一款合适的绘图工具呢,当然也有好多图形化的也是非常好用的(默默的说一声,我也是一个资深的菜鸟,当然没有用过了,也是工作没有用到)

好了,进入主题吧,这里有两位前辈的帖子,感觉不错所以就借鉴过来了。

http://codingstandards.iteye.com/blog/840055

http://blog.chinaunix.net/uid-26009923-id-3151636.html

首先创建一个dot文件,fllow.dot

vi

fllow.dot

digraph G

{

hello [shape=box];

world [style=filled, color="1,1,1"];

hello -> world [label="Yes"];

}

然后编译,导出一个png文件

sudo apt-get

install graphviz

dot -Tpng

flow.dot -o flow.png

最后就可以预览了

sudo apt-get

install eog

eog

./flow.png

用途说明

Graphviz (Graph Visualization

Software的缩写)是一个由AT&T实验室启动的开源工具包,用于绘制DOT语言脚本描述的图形。它也提供了供其它软件使用的库。Graphviz是一个自由软件,其授权为Common

Public

License。其Mac版本曾经获得2004年的苹果设计奖。Graphviz包括很多命令行工具,dot命令是一个用来将生成的图形转换成多种输出格式的命令行工具,其输出格式包括PostScript,PDF,SVG,PNG,含注解的文本等等。neato命令用于spring

model的生成(在Mac OS版本中称为energy

minimized)。twopi命令用于放射状图形的生成。circo命令用于圆形图形的生成。fdp命令另一个用于生成无向图的工具。dotty命令一个用于可视化与修改图形的图形用户界面程序。lefty命令是一个可编程的(使用一种被EZ影响的语言[4])控件,它可以显示DOT图形,并允许用户用鼠标在图上执行操作。Lefty可以作为MVC模型的使用图形的GUI程序中的视图部分。

DOT语言是一种文本图形描述语言。它提供了一种简单的描述图形的方法,并且可以为人类和计算机程序所理解。DOT语言文件通常是具有.gv或是.dot的文件扩展名。本文将主要介绍从源代码安装Graphviz工具以及dot命令的使用方式。

常用参数

格式:dot -T -o

输入文件是,生成的格式由指定,生成的文件是。

其中-T包括:

-Tps (PostScript),

-Tsvg -Tsvgz (Structured Vector Graphics),

-Tfig (XFIG graphics),

-Tmif (FrameMaker graphics),

-Thpgl (HP pen plotters),

-Tpcl (Laserjet printers),

-Tpng -Tgif (bitmap graphics),

-Tdia (GTK+ based diagrams),

-Timap (imagemap files for httpd servers for each node or

edge that has a non-null "href"

attribute.),

-Tcmapx (client-side imagemap for use in html and xhtml).

下面简单介绍下DOT语言的语法:

无向图:在最简单的应用中,DOT语言可以用来描述一张无向图。无向图显示了对象间最简单的关系,例如人之间的友谊。使用关键字graph开始一张无向图的定义,并用大括号包含要描述的节点,双连字号(--)被用来描述节点间的关系。另外,一行的末尾需要加上分号(;)。

graph graphname {

a -- b -- c;

b -- d;

}

有向图:类似于无向图,DOT语言也可以用来描述一张有向图,类似于流程图和树状图。其语法与无向图相似,但要在图的最开始使用关键字'digraph',并用箭头(->)表示节点直接的关系。

digraph graphname {

a -> b -> c;

b -> d;

}

属性:DOT语言中,可以对节点和边添加不同的属性。这些属性可以控制节点和边的显示样式,例如颜色,形状和线形。可以在语句和句尾的分号间放置一对方括号,并在其中中放置一个或多个属性-值对。多个属性可以被逗号和空格(,

)分开。节点的属性被放置在只包含节点名称的表达式后。

graph graphname {

// label属性可以改变节点的显示名称

a [label="Foo"];

// 节点形状被改变了

b [shape=box];

// a-b边和b-c边有相同的属性

a -- b -- c [color=blue];

b -- d [style=dotted];

}

注释:DOT语言支持C语言与C++风格的单行与多行注释。另外,也支持Shell脚本风格的以#开头的注释。

// 单行注释

# 如此的行也会被忽略。

使用示例

示例一 从源代码安装Graphviz

[root@jfht setup]# wget

"http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.26.3.tar.gz"

--2010-12-12 09:10:26-- http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.26.3.tar.gz

正在解析主机 www.graphviz.org... 192.20.225.20

Connecting to www.graphviz.org|192.20.225.20|:80... 已连接。

已发出 HTTP 请求,正在等待回应... 200 OK

长度:17092429 (16M) [application/x-gzip]

Saving to: `graphviz-2.26.3.tar.gz'

100%[==========================================================================================>]

17,092,429 174K/s in 1m

44s 2010-12-12 09:12:10 (161 KB/s) - `graphviz-2.26.3.tar.gz' saved

[17092429/17092429]

[root@jfht setup]# tar

zxf graphviz-2.26.3.tar.gz

[root@jfht setup]# cd

graphviz-2.26.3

[root@jfht graphviz-2.26.3]# ls

aclocal.m4 builddate.h config.h.in configure.old dot.demo graphviz.sln INSTALL makearch plugin

ast_common.h ChangeLog config.h.old contrib Doxyfile graphviz.spec INSTALL.old Makeargs README

ast_common.h.in cmd config.iffe COPYING Doxyfile.in graphviz.spec.in lib Makefile.am rtest

AUTHORS compat_getopt.h Config.mk.old cpl1.0.txt features graphviz.vcproj libltdl Makefile.in share

autogen.sh compat.h configure debian graphs graphviz_version.h m4 Makefile.old tclpkg

awk config configure.ac doc graphviz.7 iffe

你可能感兴趣的:(linux,dot命令)