Какой API-интерфейс библиотеки graphviz рекомендуется для проекта C++, которому необходимо создать некоторые графики?

Я знаю, что существует несколько версий Graphviz как библиотеки. Но я немного запутался, какой из них считается текущим + рекомендуемым. Я хотел бы создать и отобразить несколько графиков из приложения с графическим интерфейсом Linux.

Согласно http://www.graphviz.org/doc/libgraph/Agraph.pdf на стр. 22 Libgraph был заменен на Cgraph. Но документ называется Аграф, что мне кажется странным.

На странице 23 также говорится, что Lgraph является преемником C++ в C++, и, поскольку я использую C++, мне бы хотелось узнать больше, но я нигде не могу найти Lgraph.

Возможно, это связано с тем, что я вижу, что есть библиотека Boost под названием BGL, которая поддерживает импорт и экспорт файлов graphviz. Ищу мнения о том, предпочтительнее ли использовать BGL вместо Graphviz напрямую или Lgraph.

Это похоже на Ubuntu, если я sudo apt-get install libgraphviz-dev получу Cgraph. В этом случае этот вопрос должен либо подтвердить, что Cgraph является рекомендуемой библиотекой, либо спросить, стоит ли рассматривать Lgraph или BGL.


person Stéphane    schedule 09.04.2013    source источник
comment
API-интерфейс cgraph (graphviz.org/doc/libguide/libguide.pdf) выглядит не так уж плохо, он в значительной степени классически объектно-ориентирован, за исключением того, что написан на C.   -  person Walter Nissen    schedule 12.07.2013
comment
Неясный вопрос. Сгенерируйте несколько графиков - что это значит? Graphviz выкладывает графики так, чтобы их можно было четко отобразить. BGL — это фреймворк для обработки графов, чтобы ответить на такие вопросы, как кратчайший путь. Но вы хотите генерировать графики... из чего?   -  person ravenspoint    schedule 27.10.2013
comment
@ravenspoint: у меня есть внутренние данные, которые я могу вывести, например, в виде файла .gv. Я могу вручную создать кучу файлов .gv, а затем выполнить вызовы system(), чтобы попросить точку преобразовать их в графики. Но вместо этого я надеялся сделать все это с помощью Graphviz API, а не вызывать Graphviz извне.   -  person Stéphane    schedule 11.11.2013


Ответы (1)


BGL не предоставляет интерактивных интерфейсов для Graphviz; если вам это нужно, вам нужно будет использовать одну из собственных библиотек Graphviz, например, cgraph. BGL может читать и выводить файлы в формате Graphviz, но это не похоже на то, что вы ищете; у него также есть некоторые собственные алгоритмы компоновки, но они не такие сложные, как в Graphviz.

person Jeremiah Willcock    schedule 26.10.2013
comment
Есть ли пункт, но они не такие сложные, как в Graphviz, все еще сохраняются для Boost 1.59 (boost.org/doc/libs/1_59_0/libs/graph/doc/topology.html)? - person AlwaysLearning; 12.11.2015