2013-02-12 7 views
12

Graphviz resources page、質問1および2を見ても、特定の回答が見つかりませんでした。私のユースケースは、ソフトウェアコンポーネント(例えばインストール可能なパッケージ)間の依存関係をブラウズしており、ある共通のノードは多くのエッジのターゲットであるということがあります。たとえば、ほぼすべての実行可能パッケージはlibcに依存しています。基本ノード/エッジフィルタリングを使用した対話式Graphvizビューア

その特性に基づいて、私は次の機能を持つビューア/ライブラリーを持っているしたいと思います:別のLIBSにたくさんある

  1. 使用Graphvizの「ドット」レイアウトアルゴリズム(力レイアウトALGOSは良い提供していません議論された用途のレイアウト品質)。
  2. グラフの一部のノードを対話的に無効/再有効化します(上記のlibcの例)。
  3. 特定のノードからエッジを張られたすべての対話的に無効/再有効化します(たとえば、libpngはlibzに依存しますが、それは明らかです。
  4. 一部のノード(そのノードから到達可能なノードのみを持つサブグラフを表示)で再ルートグラフを作成し、グラフを完成するために「ズームバック」します。

理想的には、これはJavascriptライブラリであり、より複雑な操作機能を容易に実装できるようになります。上記のような基本的な表示動作が利用可能であることが重要なことは何ですか?再び、静的なビューアまたはノードをドラッグすることを許可するフリーフォームエディタの多くのソリューションがありますが、十分に高水準の有用な行動。

最後に、そのような解決策が存在しない場合、それらの機能を実装するための最良のフレームワークの提案を歓迎します。

答えて

3

私は、JoséFonsecaのxdot.pyが、Graphvizファイルを見るためのPythonとCairoベースの非常に優れたアプリケーションであることを発見しました。それはとてもうまく書かれていて、すごく素敵なUIを持っているので、なぜそれが相互作用サポートに少しばかげているのだろうと思うかもしれません。私は現在、それをハッキングしています。https://github.com/pfalcon/xdot.py

更新:私は上記の機能の概念証明をfiltered-viewer.pyとしてコミットしました。後で名前を変更する可能性があります。

9

Gephi、https://gephi.org/、それはGraphvizドットを含む多くのグラフフォーマットをサポートします。それはノードまたはエッジをフィルタリングすることができ、ある種の分析機能を有する。

関連する問題