我正在寻找一种算法来自动可视化大型 DAG。它需要很好地扩展到数百甚至数千个节点和连接(而不变得不可读)。连接应尽可能避免相互交叉,尤其应避免交叉未连接的节点。
我可以为此目的采用任何标准算法吗?
您可以查看可扩展的力定向放置算法。 Graphviz 实现了这一点,因此如果您想在实现之前预览它,请创建一个 Graphviz 文件并运行
sfdp my_dag.gv
(或 fdp
,这可能更容易实现)。
如果这对您不起作用,您可能需要类似 Circos 或 Hive Plots 的东西。对于有向图和无向图,蜂巢图对于数千个节点都非常有效。该算法在主页上进行了高级描述,但也有一篇附带的期刊文章。