graphviz linux 运行,绘图工具Graphviz学习使用

起因

最近完成了研究生毕业设计,在写毕业论文时,老师曾经推荐使用代码来画相关的图,当时时间有些紧,所以没有这样做。最近在看 rapidjson 的文档,看到 miloyip 文档中的图都是用 dot 文件的源代码编译出来的,一查,原来是 graphviz 的源代码。遂用了半天简单学习了下 graphviz 的语法和使用,感觉很不错,以后画图有了一个不错的工具。

graphviz 是一个运用广泛的命令行绘图软体,不过说是绘图软体,它能绘的图并不是一般人想像中的漫画或logo,而是数学意义上的 graph ,比较通俗的说法就是「关系图」。

安装

graphviz 支持 Windows、Mac OS X、FreeBSD、Solaris、Linux 等多种系统

Ubuntu或Debian下安装很简单:

sudo apt-get install graphviz

Mac下使用 brew

brew install graphviz

入门使用

1. 编写以 dot 为后缀的源代码文件,如:

// hello.dot digraph {

hello -> world;

}

2. 使用 dot 命令编译,如

dot hello.dot -T png -o hello.png

完整的命令为:

<cmd> <inputfile> -T <format> -o <outputfile>

其中graphviz 的 <cmd> 有好几种,每种使用方法都完全相同,差别只在于渲染出来的图片效果不一样。 man 中的简介是这样的:

介绍

dot

渲染的图具有明确方向性。

neato

渲染的图缺乏方向性。

twopi

渲染的图采用放射性布局。

circo

渲染的图采用环型布局。

fdp

渲染的图缺乏方向性。

sfdp

渲染大型的图,图片缺乏方向性。

可以透过 man <cmd> 取得进一步说明。但还是亲自用用比较容易理解。在本文中,凡没有说明的图,预设都是以 dot 渲染出来的。

3. 查看效果

效果如下:

b286e116020bf145790bf6348753713d.png

语法介绍

graphviz使用dot语法来说明,其它语法可以用形式化的描述如下:

graph = [strict] (digraph | graph) id ’{’ stmt-list ’}’

stmt-list = [stmt [’;’] [stmt-list ] ]

stmt = attr-stmt | node-stmt | edge-stmt | subgraph | id ’=’ id

attr-stmt = (graph | node | edge) attr-list

attr-list = ’[’ [a-list ] ’]’ [attr-list]

a-list = id ’=’ id [’,’] [a-list]

node-stmt = node-id [attr-list]

node-id = id [port]

port = port-location [port-angle] | port-angle [port-location]

port-location = ’:’ id|’:’ ’(’id’,’id’)’

port-angle = ’@’ id

edge-stmt = (node-id | subgraph) edgeRHS [attr-list]

edgeRHS = edgeop (node-id | subgraph) [edgeRHS]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值