图形可视化(Boost Graph)

13
我有一个使用Boost图库的C++程序。我想知道是否有任何方法可以按照节点中包含的某些位置值可视化图形(包括节点和边)。请查看下面图片中的示例,以了解我想要可视化的内容: http://img11.hostingpics.net/pics/647608graphViz.png 谢谢。
1个回答

22

你很幸运。

Boost图形可以序列化到并从dot语言(这是GraphViz使用的语言)反序列化。在(免费的)Boost图形库书籍和网站上有几个示例。

例如:http://www.boost.org/doc/libs/release/libs/graph/doc/write-graphviz.html

如果您使用前一个网页中的示例输出并运行

dot -Tpng dot > test.png

你将会得到类似下面这张图片的东西:

enter image description here

这是一个直接链接到使用动态属性的示例


1
太棒了,谢谢你的回答,我会看一下的。 但是,是否可以使用类型为setS(而不是vecS)的边缘和顶点来可视化图形?因为我发现在graphviz的所有示例中,图形都使用vecS(具有索引)。 - shn
由于我的图使用setS作为顶点,因此我必须为我的图提供一个vertex_index属性映射,或者在write_graphviz中提供一个显式的vertex_id参数,否则write_graphviz将无法工作。 你能给我一个非常简单的例子,说明如何为我的图提供一个vertex_index属性映射,或者在write_graphviz中提供一个显式的vertex_id参数吗? 我的图定义如下: typedef adjacency_list<setS, setS, undirectedS, NodeData, EdgeData> Graph; 其中NodeData和EdgeData是结构体。 - shn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接