可视化graph的工具: GraphViz

这套工具可以把有向图(digraph)和无向图(graph)在平面内展现出来,方便观察。GraphViz使用DOT(一种图形描述语言)描述图,然后有解释工具dot生成图像文件。dot支持多种图像文件,包括非矢量的gif、矢量的ps、svg等约20多种格式。DOT语言也非常简单易学。举个例子:

digraph G {
 size = "4,4"
 main [shape=box]; /* this is a comment */
 main -> parse [weight=8];
 parse -> execute;
 main -> init [style=dotted];
 main -> cleanup;
 execute -> { make_string; printf}
 init -> make_string;
 edge [color=red]; // so is this
 main -> printf [style=bold, label="100 times"];
 node [shape=box, style=filled, color=".7.3 1.0"];
 execute -> compare;
}

存为test.dot,然后执行
  > dot test.dot -Tpng -o test.png
就生成了graph的图像文件。很方便哦。
 
实际上GraphViz还可以画出很多漂亮的“图”。比如ER图,hash table示意图。更多请参考:http://www.graphviz.org/Gallery.php。以后可以考虑用GraphViz画一些示意图,既方便有专业,还很容易转成ps(eps)。继续研究研究。