现在写专业文章离不开图,有些图非常复杂但非常有规律,用PowerPoint或Visio画都很吃力,这时候会编程就轻松多了,比如下面这张状态转换图:
再比如这张数据结构图:
再比如英文小说《欺骗的女儿》中的人物关系图:
再比如这张超复杂的网络结点图:
有些图看起来简单,可能用PowerPoint画也费不了多少时间,但如果这种图需要频繁调整,那工作量可就大了去了。比如程序员经常画的流程图、类图、数据结构图等,公司里经常画的组织结构图、工作流图等。
对于这类非常有规律的图,还有一个强大的工具,它就是GraphViz。上面举的几个例图都是摘自它的官网:http://www.graphviz.org。这个GraphViz不仅仅是一个工具,而且还对应了一种画图的语言,称为DOT Language。
安装与运行
到官网上点击Download链接,可以看到各种平台的下载安装包,支持Linux、Windows、Mac,我下载的是Windows平台的graphviz-2.38.msi安装包,安装过程一路默认下一步即可。完成之后,从开始菜单中找到gvedit.exe,运行它出现主界面。
Hello World
任何语言都有个Hello World,DOT Language也不例外。从File菜单中点击New,会新建一个子窗口,名称为graph1.gv,所有GraphViz的文件的扩展名都为.gv,刚才的gvEdit.exe的意思也明白了吧?
在文本编辑窗口中输入以下代码:
digraph G {
hello -> world
}
再点击Graph菜单中的Layout,或者直接按F5键,弹出一个View窗口,一张简单的图就画出来了。
简单解释一下:
类与对象图
在《零基础学编程028:面向对象编程OOP》里我画了一张图,实际上就是用GraphViz生成的。
图并不复杂,直接看代码:
digraph G {
node[shape=box]
Stock[style=filled]
Stock -> {google; amazon; facebook; apple}
}
花括号内的代码就三行,记得按F5看看运行效果,解释一下:
小结:
--- END ---