【发布时间】:2013-10-27 07:17:23
【问题描述】:
我知道作为库的 Graphviz 有多个版本。但是对于哪个被认为是当前+推荐的,我有点困惑。我想从一个 linux GUI 应用程序中生成并显示一些图表。
根据第 22 页的http://www.graphviz.org/doc/libgraph/Agraph.pdf,Libgraph 已被 Cgraph 取代。但是文件叫Agraph,我觉得很奇怪。
在第 23 页,它还说 Lgraph 是 Cgraph 的 C++ 继任者,由于我使用的是 C++,我很想了解更多信息,但我似乎无法在任何地方找到 Lgraph。
也许相关,我确实看到有一个名为 BGL 的 Boost 库,它支持导入和导出 graphviz 文件。寻找关于直接使用 BGL 而不是 Graphviz 还是 Lgraph 更可取的意见。
如果我 sudo apt-get install libgraphviz-dev 我得到 Cgraph,它看起来就像在 Ubuntu 上。在这种情况下,这个问题是要确认 Cgraph 是推荐的库,并询问 Lgraph 或 BGL 是否值得考虑。
【问题讨论】:
-
cgraph (graphviz.org/doc/libguide/libguide.pdf) 的 C api 看起来还不错,除了用 C 编写之外,它几乎是经典的面向对象的。
-
模糊的问题。 “生成一些图表”——这是什么意思? Graphviz 对图表进行布局,以便清晰显示。 BGL 是一个用于处理图形以回答诸如什么是最短路径之类的问题的框架。但是你想生成图表......从什么开始?
-
@ravenspoint:例如,我有可以输出为 .gv 文件的内部数据。我可以手动创建一堆 .gv 文件,然后执行 system() 调用以要求 dot 将它们转换为图形。但我希望使用 Graphviz API 来完成这一切,而不是必须从外部调用 Graphviz。
标签: c++ ubuntu graphviz boost-graph