2

私はプレフューズ ビジュアライゼーション ツールキットを初めて使用するので、一般的な質問がいくつかあります。私の目的のために、prefuse (graphview / graphml) を使用して初期の視覚化を実行したいと思います。レンダリングしたら、ユーザーがノードをクリックすると、新しい視覚化のために新しい xml ファイルを完全にリロードしたいと思います。グラフを表示用に「事前にパッケージ化」できるようにするために、これを行いたいと考えています。

例えば。テッドを探したら Ted に関連する xml ファイルを読み込み、表示をレンダリングしたいと考えています。Ted には、Bill と Joe という名前のノードが関連付けられていることが表示されます。Joe をクリックすると、表示がクリアされ、Joe に関連付けられた xml ファイルがロードされます。等々。

すべてのノードとノードの関係情報を含む 1 つの非常に大きな xml ファイルをロードし、あるレベルから別のレベルへのホップを使用して prefuse がこれを処理できるようにすることを検討しました。ただし、最終的には、データのサイズが原因でシステム パフォーマンスの問題が発生すると確信しています。

助けてくれてありがとう、ジョン

4

2 に答える 2

1

もちろん、あなたが言ったように、1 つのオプションはすべてのノードをロードしてから、非表示にする必要のないノードを設定することです。Prefuse はかなりうまく拡張できますが、もちろん限界があります。2 番目のオプションは、まったく新しいパネルを作成し、古いパネルを置き換えることです。オプション2を使用しましたが、非常にうまく機能します。

于 2010-01-10T01:46:22.687 に答える
0

私は Prefuse のパフォーマンスの問題の専門家ではありませんが、必要なノードのみを再ロードする処理を行うよりも、巨大な xml ファイルを一度にロードする方がリソースを大量に消費すると思います。

使用しているグラフの種類はわかりませんが、視覚化オブジェクトからグラフを削除し、アクティビティをキャンセルし、レイアウトをキャンセルし、ActionList を更新して最初からやり直す「refreshGraph」を配置します。おそらく次のようになります。

public void refresh(clickedNode){
    visualization.removeGroup(GRAPH);
    visualization.removeGroup(AGGR);
    activity.cancel();
    actionList.cancel();
    visualization.reset();
    // process the XML and reload your graph here
}
于 2012-11-13T23:00:01.800 に答える