Graphviz 是由AT&T Research、Lucent Bell实验室开源的可视化图形工具,可以很方便的用来绘制结构化的图形网络。具体地,其使用一种名为dot语言的DSL来编写脚本
安装
Mac下直接利用brew安装Graphviz即可
1 | # 更新brew |
安装后查看版本信息,验证安装是否成功
1 | # 查看版本信息 |
实践
无向图
1 | // 无向图 |
可以直接通过如下命令进行渲染。典型地输出格式有:png、svg、jpeg等
1 | # 将指定脚本文件 输出为 指定格式、指定名称的文件 |
效果如下所示
有向图
1 | // 有向图 |
为方便实时预览渲染效果,我们可以在VS Code当中编写dot脚本,然后在VS Code当中安装一个名为“Graphviz (dot) language support for Visual Studio Code”的插件
至此,我们就可以实现实时预览,效果如下所示
子图
子图可以提供一个单独的上下位文用于设置图的属性
1 | // 子图 |
效果如下所示
集群
当子图的名称以cluster开头时,则Graphviz会将该子图标记为Cluster集群。此时布局引擎会将集群内的节点绘制在一起,并在外部使用一个矩形框对其进行包裹。需要注意的是,该特性依赖于布局引擎
1 | // 集群 |
效果如下所示
属性设置
Graphviz提供了丰富的属性设置,以满足不同的可视化需求,实现丰富的展示效果,下面即是一个示例
1 | // 属性设置 |
效果如下所示
参考文献
- 领域特定语言(2013年版) Martin Fowler著