0

そのため、助けが必要な特定のタスクがありますが、その方法がわかりませんでした。固定された一連のネットワーク ノード間で関係を形成するためのモデルがあります。そこで、ある種の 2 次元または 3 次元グリッド上にすべてのノードのセットを表示するウィンドウまたはビジュアライゼーションをセットアップしたいと考えています。次に、タイムステップごとに、ノード間の最新の結合セットで視覚化ウィンドウを更新します。そのため、空間に配置された一連のノードから始めて、タイムステップごとにビジュアライゼーションによって新しいエッジが徐々に追加されます。

ここでの課題は、networkx のようなもので、タイムステップごとにネットワークを再描画してもうまくいかないことを私が知っていることです。一般的なネットワーク表示アルゴリズムの多くは、ノード間の距離を最大化し、エッジをより適切に表示するために、ノードをランダムに配置します。そのため、タイムステップごとにネットワークを再描画すると、ノードは毎回異なる場所に配置され、ネットワークの成長パターンを特定するのが難しくなります。そのため、一連の静的ノードが必要なため、各タイムステップでエッジがどのように追加されるかを確認できます。

一度に約 100 個のノードを視覚化しようとしています。そのため、20 程度の少数のノードから始めて、徐々に 100 ノードまで構築します。モデルが検証された後、1000 または 2000 ノードまで構築します。もちろん、1000 または 2000 ノードのネットワークを視覚化するのは難しいため、シミュレーションに 100 ノードしかないときにネットワークを視覚化できることを確認したいだけです。

これをwebglか何かでできるかどうか、またはPythonでこれを行う良い方法があるかどうかはわかりませんでした。必要に応じて、Python と webgl 間の通信に Vispy を使用できます。

4

1 に答える 1

0

これは実際、Vispy の適切な使用例のように見えます。ノードには PointVisual を、エッジには LineVisual を使用する必要があります。その後、シミュレーションの実行時にエッジをリアルタイムで更新できます。

アニメーションは、WebGL を使用する IPython ノートブックでも機能します。

ノードの静的位置を指定すると、他のグラフィックス ツールキットも機能する可能性があることに注意してください (ただし、OpenGL による GPU アクセラレーションは必ずしも必要ではありません)。自動レイアウト アルゴリズムに頼る代わりに、d3js または networkx を使用してノードの位置を修正できると思います。

于 2014-12-02T21:23:46.200 に答える