我正在研究绘制图形的应用程序。我非常喜欢graphviz / dot / neatu算法所做的工作。但是,据我所知,我只能将它用作库来呈现图形,并且无法“播放”算法的工作方式。
具体来说,我需要两件事,一件在输入端,另一件在输出端:
在输出端,我需要从布局中提取节点位置。实际上,我不希望库绘制任何东西,只是为了返回计算出的节点位置。
在输入端,我知道点算法基于它们的边缘依赖性计算节点的“等级”,然后该等级用于计算节点的y坐标。但是,在我的情况下,我事先知道等级,如果我能将这些信息提供给点算法,我会很高兴,所以它会使用我的数据,而不是计算它。
任何线索我是否以及如何实现这一目标?我在python中工作,但可以用任何语言进行读/写。
回答你的第一个问题:
graphviz允许各种output formats,其中包括文本格式,您可以读取/解析和提取节点位置等信息。看看dot,json和plain。