以Graphviz(DOT)格式描述的图形需要手动布局

8
我有一个以DOT文件写下的图表。我选择它是因为它很容易通过程序读写,并且我有相当多的工具使用DOT文件作为输入。Graphviz在绘制方面做得不错,但并不完美(据我所知,这就是它的全部功能)。 我正在寻找但找不到一种工具,可以读入DOT文件并让我手动拖动顶点和边缘,类似于https://www.draw.io。最不想做的事情是手动重新输入已经编写过的图形(或从程序计算输出等)到draw.io中,然后产生两个可能由于转录错误而具有不同边缘和顶点集的不同文件。理想情况下,我希望有一个工具,只将有关事物位置的元数据编写到自己的文件中,而不向DOT文件添加一堆垃圾,使我仍然可以使用DOT文件作为在多个不同任务之间的图形的统一表示,并保证工具的可用性。
2个回答

4
您可以使用命令dot -Tdot运行dot,以另一个dot文件的形式请求输出。 dot然后会计算布局,但不会输出图像表示,而是输出另一个dot文件,其中包含与输入完全相同的信息,并附加布局信息作为其他属性。 然后,您可以手动编辑布局信息,并再次通过dot运行它,以获得图像表示。
如果您的工具正确处理dot文件,则应能够处理带有布局属性的dot文件。
如果您想要一种所见即所得的工具来辅助手动布局过程,请查看dotty

3
以下是我手动调整节点位置和dot绘制的边缘时所做的步骤:
  • 让dot生成一个SVG图像: dot -Tsvg < graph_text.dot > output_image.svg
  • 使用SVG编辑器(例如InkscapeSketch)打开SVG文件。

当您在能够处理SVG格式的图像编辑器中打开SVG文件时,图中的每个节点和边缘都将成为独立的可拖动组件。


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