【发布时间】:2020-11-24 06:12:43
【问题描述】:
我正在编写一个基本上处理子图 DAG 的程序,即图是有向无环图,图的每个节点都是子图。例如,对于 DAG 中的边 A->B,节点 A 是三角形的子图,节点 B 是四派的子图。边A->B表示通过添加一个子图顶点和三个子图边,从三角形扩展为四团。
+=======+ +=======+
| a---b | | a---b |
| | / | | |\ /| |
| | / | =====> | | X | |
| |/ | | |/ \| |
| c | | c---d |
+=======+ +=======+
A B
出于多种目的,我想可视化这个子图 DAG,即可视化可以显示 DAG 的整个结构,同时显示所有节点的子图。如果还能显示顶点和边的属性就更好了。
我能够以任何格式列出 DAG 的所有节点和边以及所有节点的子图。但我不知道什么工具最适合这种可视化。我通过将子图 DAG 导出为 dot 格式并使用 graphviz 将 dot 文件转换为 png 来尝试 graphviz。 graphviz 的问题是它可以很好地显示节点的子图,但无法以人类可读的方式显示 DAG 的结构。如果
- 对于 DAG 边
A->B,节点A放置在节点B上方。 (graphviz现在将所有 DAG 节点放在同一行) - 节点放置得当,使 DAG 边之间的交叉点最小化。
还有其他选择吗?提前致谢!
【问题讨论】:
标签: graph visualization graphviz directed-acyclic-graphs