本体图布局算法(有向无环图)

Graph layout algorithm for ontologies (directed acyclic graphs)

我正在寻找一种显示 ontology (DAG) 的方法。最好我想生成一个结构,如:

我一直在研究 igraph 中的布局算法,但没有找到任何接近我想要的东西。

您基本上是在寻找径向树布局算法。 igraph 包含树布局算法(Reingold-Tilford algorithm,但默认情况下它不会生成径向布局,因为它以自上而下的方式布置树。您可以尝试转换由 Reingold-Tilford 算法生成的布局进入径向布局(只需使用 Y 坐标作为半径,X 坐标作为围绕原点的角度)。这可能会提供一个很好的起点,但我怀疑通过将其传递给能够优化初始 "seed" 布局的力导向布局(如 Fruchterman-Reingold 算法)。

注意: 使用开箱即用的 Fruchterman-Reingold 布局算法可能行不通,因为如果您不为其提供种子布局,那么它从随机布局开始。随机布局可能与最佳树状布局相去甚远,因此 Fruchterman-Reingold 算法更难解开交叉边。