graphviz,DOT格式和cgraph之间的关系?

时间:2017-07-12 13:08:12

标签: graphviz dot

我计划使用DOT图形表示格式来保存/序列化具有一堆属性的图形 - 而不是为了绘制它们。

我在GraphViz的输入格式中了解了DOT,所以我去了那个网站,看看如何解析DOT以及我是否可以使用解析器或轻松移植它。我发现的是这份文件:Using GraphViz as a Library。以下是关于DOT的内容:

  

cgraph库为DOT中表示的图提供了解析器。   使用此功能,可以轻松读取图形并查询所需的图形   使用agget或agxget的属性。有关这些的更多信息   函数,请参见第2.1.1节。

并在2.1.1节中说:

  

绘制图形的第一步是创建它。要使用   Graphviz布局软件,必须使用cgraph创建图表   图书馆。   我们可以使用agread()以两种主要方式之一创建图表   或agopen()等等。

...然后它描述了那些采用C标准库FILE*char*字符串的函数。

我不太明白。它看起来像cgraph is just a folder of code within the graphviz repository

  • cgraph库读取DOT文件而不是是什么意思?
  • cgraph是否作为独立库存在?
  • DOT格式是否存在/独立于graphviz开发,如果是,它是否与cgraph代码独立相关?

请赐教。

2 个答案:

答案 0 :(得分:1)

  1. 点文件只是遵循描述图形的结构的文本文件。从历史上看,它是由AT&T与GraphViz一起开发的,当时是由“ ma-bell”负责电话网络,并开发了晶体管,激光等发明。但是,点文件现在可以由许多图形/网络软件包读取。 >

  2. cgraph是Graphviz随附的库。您可以通过查找名为libcgraph的文件找到该文件,该文件通常位于名为lib的文件夹中。可以与GraphViz分开使用。它的代码在您看到的文件夹中。

  3. 从技术上讲,点和图形是分开的东西。实际上,Graphviz曾经使用其他库,并在过去的某个时间切换到cgraph库。因此,您可以在graphviz网站上找到描述较旧的graphviz库的pdf。

将Graphviz视为IDE /软件包/可视化系统。 cgraph是此软件包中的一种工具。点是一种用于存储和处理图形数据的基于文本的系统的格式-特别适合于可视化。

答案 1 :(得分:0)

对于你的第三个问题,DOT本身只是一种语法,它的语法可以用来描述图形。各种软件包应用程序提供IDE(例如GraphViz)等功能,以及以各种格式和布局呈现和保存图形的功能。

如果DOT语言的语法允许您充分描述图形,那么这是一个很好的方法,因为应用程序和渲染器的整个生态系统可用,如果您决定使用它们。而且它很简洁 - 出于这个原因,我将它用于系统文档(> 400服务器和> 1000个节点)。