具有基本节点/边缘过滤的交互式Graphviz查看器

pfa*_*con 17 visualization interactive viewer graphviz

我看过Graphviz资源页面,问题12仍然找不到具体的答案.我的用例是浏览软件组件(例如可安装软件包)之间的依赖关系,其中一个特定特征是一些公共节点是许多边缘的目标.例如,几乎每个可执行包都依赖于libc.

根据这个特点,我想让查看器/库具有以下功能:

  1. 使用Graphviz"点"布局算法(强制布局算法,在不同的库中很多,不能为讨论的用例提供良好的布局质量).
  2. 以交互方式禁用/重新启用图中的某个节点(上面的libc示例).
  3. 以交互方式禁用/重新启用特定节点的所有边缘(例如,libpng依赖于libz,但这很明显,并且可以禁用以使视图不混乱).
  4. 在某个节点重新生成根图(显示只有从该节点可到达的节点的子图),并"缩小"以完成图形.

理想情况下,这将是一个Javascript库,可以轻松实现更复杂的操作功能.重要的是,如上所述的基本观看行为是开箱即用的 - 再次,我找不到类似的东西,许多解决方案是静态观看者,或"自由形式编辑器"允许拖动节点,但不是足够高水平和有用的行为.

最后,如果不存在这样的解决方案,欢迎提出实施这些功能的最佳框架的建议.

fra*_*586 15

Gephi,https: //gephi.org/,它支持许多图形格式,当然包括Graphviz点.它可以过滤节点或边缘,并具有某种分析功能.


pfa*_*con 6

我发现 José Fonseca 的xdot.py是非常酷的基于 Python 和 Cairo 的应用程序,用于查看 Graphviz 文件。它写得如此好,用户界面如此之好,以至于人们可能想知道为什么它的交互支持有点特别,不允许开箱即用的更多可扩展性。我目前正在https://github.com/pfalcon/xdot.py对其进行黑客攻击

更新:我提交了上述功能的概念实现证明为 filters-viewer.py 。以后可能会改名。