带有基本节点/边过滤功能的交互式Graphviz查看器

28

我查看了Graphviz资源页面,以及问题12,但仍然找不到具体的答案。我的用例是浏览软件组件(例如可安装软件包)之间的依赖关系,并且其中一个特点是一些常见节点是许多边的目标。例如,几乎每个可执行软件包都依赖于libc。

基于这个特点,我想要一个具有以下功能的查看器/库:

  1. 使用Graphviz“dot”布局算法(强制布局算法在不同库中很多,但对于所讨论的用例来说,它们提供的布局质量不好)。
  2. 交互式地禁用/重新启用图中的某些节点(如上述的libc示例)。
  3. 交互式地禁用/重新启用特定节点的所有边缘(例如,libpng依赖于libz,但这是显而易见的,可以禁用以避免混乱视图)。
  4. 将图重新根节点化(显示仅从该节点可达的子图),并“缩回”至完整图。
Ideally, 这应该是一个 JavaScript 库,可以轻松实现更复杂的操作能力。重要的是基本的视图行为如上所述应该是开箱即用的 - 再次强调,我找不到像这样的东西,许多解决方案要么是静态查看器,要么是“自由形式编辑器”,允许拖动节点,但没有足够高级和有用的行为。
最后,如果不存在这样的解决方案,则欢迎提供实现这些功能的最佳框架建议。
2个回答

20

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


10
我发现José Fonseca的xdot.py是一个非常酷的Python和Cairo应用程序,用于查看Graphviz文件。它写得非常好,并且具有非常好的UI,以至于人们可能会想知道为什么它在交互支持方面有些临时性,不能在开箱即用的情况下提供更多的可扩展性。我目前正在https://github.com/pfalcon/xdot.py上对其进行修改。
更新:我提交了筛选器filtered-viewer.py的概念实现。可能稍后会更改名称。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接