使用Graphviz画图

我们使用dot语言来画 graph(算法里的那个graph ^^).

1. 无向图

dot语言里面,对于无向图,使用关键字 graph 后面跟图的名字。 对于 u-> v 这样的边, 在 dot语言里表示为 " u -- v".

下面举一个例子:

$ cat undirected.gv 
graph undirected {
 1 -- 2;
 3 -- 2;
 4 -- 1;
 2 -- 5 -- 4;
}

生成图片的命令如下:

dot -Tpng undirected.gv > undirected.png
生成的图片如下:

使用Graphviz画图_第1张图片

也可以使用 neato 命令。

neato -Tpng undirected.gv > undirected.png
也可以用其它格式的:

neato -Teps undirected.gv > undirected.eps

2 有向图

在 dot语言里面,使用 -> 代替 "--".使用 digraph 关键字。

下面的一个例子:

digraph directed {
    a -> b;
    a -> c -> d [color=red,penwidth=3.0];
    c -> e;
}

生成的图片如下:

使用Graphviz画图_第2张图片



在使用 graphviz的时候,有时候报“Format: "png" not recognized"的错误。可以使用

dot -c

解决(需要有 root权限)。

参考:

http://www.eecs.berkeley.edu/Pubs/TechRpts/2013/EECS-2013-176.pdf

你可能感兴趣的:(Linux)