在开发过程中,会经常绘制一些图像,使用Visio等软件比较复杂,而且还需要win的环境进行安装,过程繁琐、复杂。可以使用脚本的方式绘制图形。
下面对常见的 GraphViz、Mermaid 工具进行比较和介绍。
GraphViz
graphviz是贝尔实验室开发的一个开源的工具包,它使用一个特定的DSL(领域特定语言): dot作为脚本语言,然后使用布局引擎来解析此脚本,并完成自动布局。graphviz提供丰富的导出格式,如常用的图片格式,SVG,PDF格式等。
graphviz中包含了众多的布局器:
- dot 默认布局方式,主要用于有向图
- neato 基于spring-model(又称force-based)算法
- twopi 径向布局
- circo 圆环布局
- fdp 用于无向图
graphviz的常见实例参见:https://www.graphviz.org/gallery/
graphviz绘制流程图的使用方法参见:http://icodeit.org/2015/11/using-graphviz-drawing/
Mermaid
使用Mermaid绘制时序图
详细使用方法参见:https://mermaidjs.github.io/
GraphViz 和 Mermaid 的比较
graphviz有一定的局限,比如绘制时序图(序列图)就很难实现不能绘制流程图。
GraphViz、Mermaid 工具集成在一些常用的Markdown 编辑器中,如MWeb,可以直接使用这些Markdown编辑器绘制图形,并实时预览。CSDN的Markdown 编辑器不支持GraphViz,支持Mermaid。平常使用可以直接使用Mermaid 工具进行绘制,如甘特图、时序图,Mermaid 绘制的图形比较美观。