2013-02-12 74 views
12

我查看通過Graphviz resources page,並且問題12仍然無法找到具體答案。我的用例是瀏覽軟件組件(例如可安裝的軟件包)之間的依賴關係,並且一個特定的特徵是它的一些常見節點是許多邊緣的目標。例如,幾乎每個可執行程序包都依賴於libc。具有基本節點/邊緣過濾功能的交互式Graphviz查看器

基礎上特質,我想有瀏覽器/庫以下功能:

  1. 使用Graphviz的「點」佈局算法(力佈局交易算法其中有很多不同的庫不提供良好討論用例的佈局質量)。
  2. 交互式禁用/重新啓用圖形中的某個節點(上面的libc示例)。
  3. 交互式禁用/重新啓用來自特定節點的所有邊緣(例如,libpng依賴於libz,但這很明顯,並且可以禁用以避免混亂視圖)。
  4. 在某個節點(顯示只有節點可到達該節點的子圖)的重新根圖,以及「放大」以完成圖形。

理想情況下,這將是一個Javascript庫,這將允許更容易實現的更復雜的操作功能。重要的是,如上所述的基本觀看行爲是開箱即用的 - 再一次,我找不到這樣的東西,許多解決方案都是靜態觀看者,或者「自由形式編輯器」允許拖動節點,但不能與足夠高水平和有用的行爲。

最後,如果此類解決方案不存在,歡迎提供實現這些功能的最佳框架的建議。

回答

3

我發現JoséFonseca的xdot.py是非常酷的基於Python和Cairo的應用程序,用於查看Graphviz文件。它編寫得非常好,並且具有非常好的用戶界面,所以人們可能會想知道爲什麼它在其交互支持方面有點特別,並不能提供更好的擴展性。我目前在黑客入侵https://github.com/pfalcon/xdot.py

更新:我承諾將上述功能的概念驗證實現爲filtered-viewer.py。稍後可能會重命名。

9

格芬,https://gephi.org/,它支持多種圖形格式,當然包括Graphviz點。它可以過濾節點或邊緣並具有某種分析功能。