Graphviz简介


本文为译文,点击 此处查看原文。
Graphviz - Graph Visualization Software(图形可视化软件)

1. 图形可视化

图形可视化是将结构信息表示为抽象图和网络图的一种方法。自动图形绘制在软件工程、数据库和web设计、网络以及许多其他领域的可视化接口中有许多重要的应用。
Graphviz是一个开源的图形可视化软件。它有几个主要的图形布局程序(layout programs)。有关一些示例布局,请查看 gallery。它还具有web和交互式图形界面,以及辅助工具、库和语言绑定。
Glen Low的 Mac OS X edition of Graphviz 获得了2004年的两项苹果设计大奖。
Graphviz布局程序以简单的文本语言描述图形,并以几种有用的格式绘制图形,如用于web页面的images和SVG、用于包含在PDF或其他文档中的Postscript、或显示在交互式图形浏览器中。(Graphviz还支持GXL,一种XML方言。)
Graphviz对于具体图表有许多有用的特性,比如颜色、字体、表格节点布局、行样式、超链接和自定义形状的选项。
实际上,图通常是由外部数据源生成的,但是也可以手工创建和编辑它们,或者作为原始文本文件,或者在图形编辑器中创建和编辑。(Graphviz并不是Visio的替代品,所以以这种方式使用它可能会令人沮丧。)

2. Roadmap

  • dot - 绘制有向图的 “hierarchical” 或 layered 绘图。布局算法的目标是边在相同的方向(从上到下,或从左到右),然后试图避免边交叉和减少边长度。
    在这里插入图片描述
  • neato - “spring model”布局。如果图形不是太大(大约100个节点),而且您对它一无所知,那么这是默认使用的工具。Neato试图最小化一个全局 energy 函数,这相当于统计多维尺度。虽然旧的Kamada-Kawai算法(使用最速下降法)也是可用的,但是我们使用了压力优化法实现了该解决方案。
    在这里插入图片描述
  • fdp - 类似于neato的“spring model”布局,但这是通过减少 forces,而不是与 energy 的工作。Fdp实现了Fruchterman-Reingold启发式方法,包括一个多网格求解器,它处理较大的图和集群无向图。
    在这里插入图片描述
  • sfdp - 多尺度版本的fdp,用于大型图形的布局。
    在这里插入图片描述
  • twopi - 径向布局,在 Graham Wills 97 之后。节点被放置在同心圆上,这取决于它们与给定根节点的距离。您可以设置根节点,或者让 twopi 来做。
    在这里插入图片描述
  • circo - 圆形布局,在 Six and Tollis 99, Kauffman and Wiese 02 之后。这适用于多个循环结构的特定图表,例如某些电信网络。
    在这里插入图片描述

3. 图形查看器

  • dotty - 一个老式的可定制Unix/X windows查看器,后来被移植到Microsoft windows。
  • tcldot - Graphviz的TCL/TK脚本语言扩展
  • Webdot - 一个tcldot脚本化的WWW服务,用于HTML文档中的图形。
    还有一个用 perl 编写的简化版本
  • Grappa - 一个用于具有完整Java图形数据结构的图形的Java包
  • ZGRViewer- 一个基于svg的大型图形缩放图查看器。
  • Mac OS X graphviz
  • viz.js - graphviz使用emscripten构建,可以在web和node.js中使用

4. Filters

gvpr是一种通用的图形流编辑器,具有awk、sed的精华(如果您不了解这些,可以考虑perl)。

5. 示例应用程序

猜你喜欢

转载自blog.csdn.net/qq_23599965/article/details/88415149
今日推荐