我正在寻找一个可以提供节点和边的库,它会生成一个布局良好的所有节点的坐标列表。但是,应该可以为布局算法应该尊重的一些但不是所有节点提供固定位置。
到目前为止,我已经尝试过 graphviz(fdp,neato),它似乎无法保持某些节点的位置并围绕它们构建布局。
该库必须可与 python 一起使用,因此它应该是 python 或 c/c++,以便我们可以编写自己的绑定(bind)。
下面的图片准确地说明了我正在寻找的东西(这是 uDraw 项目,它似乎不作为一个库存在)。
最佳答案
您可以在 graphviz
中执行此操作相反,如果这对您有用。为此,您将首先绘制右侧图,然后绘制左侧图,其中节点 15、16 和 17 设置为 style=invis
.这将为您提供与此处显示的布局大致相同的布局。
首先绘制左侧图表时我可以察觉到的一个问题是,软件(dot
或其他东西)自然会尝试绘制没有节点 15、16 和 17 的“漂亮”图表,并且可能不会离开如果以后需要,可以安装节点 15、16 和 17 的足够空间。例如,如果我们尝试在节点 11 和 12 之间插入节点 12a,则上图中的该节点将没有空间。另一方面,如果节点 12a 最初被绘制但不可见,则软件将为它分配空间,以后可以将其包含在其中。
关于layout - 增量图的节点图布局库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16792847/