Graphiviz是有用的图形和网络布局软件。您为它提供了图形描述,如左图所示:
图"示例" {A-B-C B-D,F [style =" dotted"] D-F-E-C}
并生成如右图所示的图形。第一行表示节点A连接到B,B连接到C。第二行表示B也同时连接到D和F,但边缘应为点线。第三行说D也连接到F,F连接到E,E连接到C。
Graphviz有几个布局引擎,它们尝试针对不同种类的属性优化布局。上面的示例使用了neatolayout引擎,该引擎尝试实现总体紧凑的布局。下面的示例为点引擎提供了相同的输入,该引擎旨在用于更有针对性的图,并试图强调节点之间的层次结构或流程。
我为美国各州的边界图构建了一个Graphiviz配置文件,并将其放入文件中以查看结果。该图是自然平面的,有趣的是看看布局算法是否可以检测到它。
这是Graphviz的默认布局引擎neato的输出,在推断美国的实际形状方面做得非常好!
(此处的节点均标有标准的邮政缩写。当您将指针悬停在本文的州名或其他地理标记上时,将弹出相应的缩写。例如,纽约应弹出一个带有“ NY”的框。)