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

时间:2013-02-12 18:01:52

标签: visualization graphviz interactive viewer

我查看了Graphviz resources page,问了12,但仍然无法找到具体的答案。我的用例是浏览软件组件(例如可安装软件包)之间的依赖关系,其中一个特定特征是一些公共节点是许多边缘的目标。例如,几乎每个可执行包都依赖于libc。

根据这一特点,我希望观众/图书馆具备以下功能:

  1. 使用Graphviz" dot"布局算法(强制布局算法在不同的库中很多,不能为讨论的用例提供良好的布局质量)。
  2. 以交互方式禁用/重新启用图表中的某个节点(上面的libc示例)。
  3. 以交互方式禁用/重新启用特定节点的所有边缘(例如,libpng取决于libz,但这很明显,可以禁用以使视图不整洁。)
  4. 在某个节点重新生成根图(显示只有该节点可以访问的节点的子图),"缩放"完成图表。
  5. 理想情况下,这将是一个Javascript库,可以轻松实现更复杂的操作功能。最重要的是,如上所述的基本观看行为是开箱即用的 - 再次,我无法找到类似的东西,许多解决方案是静态观看者,或者#34;自由形式编辑" ;允许拖动节点,但不能拖动具有足够高级别和有用行为的节点。

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

2 个答案:

答案 0 :(得分:12)

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

答案 1 :(得分:4)

我发现JoséFonseca的xdot.py是非常酷的Python和基于Cairo的应用程序,用于查看Graphviz文件。它编写得非常好,并且具有如此优秀的UI,人们可能想知道为什么它在交互支持方面有点特别,不允许开箱即用的更多可扩展性。我目前正在https://github.com/pfalcon/xdot.py

进行攻击

更新:我将上述功能的概念验证实施为filtered-viewer.py。可能稍后会重新命名。