web-dev-qa-db-ja.com

重み付けされたネットワークを視覚的に整理する

バックグラウンド

各ノード/頂点が人である加重ネットワークがあります。各ノード間の接続の重みは、2つのノード間の相互作用のレベルを表します。各ノードは人の写真で視覚的に表現され、ノードのすべてのペアはその間に(さまざまな重みの)接続を持っています。

データには2つのセットがあります。最初のデータセットは約100ノード、2番目は約450ノードです。

私の質問は:ノードはどのように配置する必要がありますか?私には5つのアイデアがあります。

  1. サークル
    • すべてのノードを1つの大きな円に配置し、線をその内側で交差させます。
  2. 重要度
    • 最も強い接続を持つノードを中央に配置します。
    • プログラムする:2番目に難しい。
  3. 距離
    • 強い接続間の平均距離が最小になるようにノードを配置します。基本的には、より強力な接続を互いに近づけます。
    • プログラムする:最も難しい。
  4. 地理
    • 地理的位置に基づいてノードを配置します。
    • プログラムするには:最も簡単です。
  5. ランダム
    • ノードをスペースにランダムに配置します。
    • プログラムするには:2番目に簡単です。

これらのオプションのどれがデータを視覚化するのに最適でしょうか?どれが最悪ですか?それらのうちのいくつかを切り替えるオプションを許可するのが最善でしょうか?他に何か提案はありますか?

1
Daniel

それぞれについて話している図の種類は、少し異なることを行います。私はあなたが言及するそれぞれのタイプを調べて、それらが何に適しているかについてもう少し話そうとします。データを視覚化するためにどちらが優れているかは、データのfindまたはshowを何にしようとしているかに大きく依存します。

1-コード図

そして、物事の関連性を示すのは得意ですが、表示するものがたくさんある場合は、それぞれの関係の強みを示すのはあまり得意ではありません。また、関係が複雑な場合、関連するもののクラスタをマスキングして、あちこちに線の混乱を残す可能性があります。彼らが多すぎる忙しい場合、彼らは追跡するのが難しい場合があります。

2-中間に多くの強いリンク

私はこれを何と呼ぶか​​わかりませんが、とにかく#3を使って作業すると、非常によく似たものになるでしょう...

3-力指向のレイアウト

これらの実装はさまざまです。私の理解では、デフォルトではすべての長さが同じになります...しかし、ほとんどの実装にはそれを変更する手段があります。たとえば、 d3.js 実装では、各関係にリンク距離を設定して、その行の最適な長さを設定できます。関係の強さに基づいて、各関係のリンク距離を決定できます。これにより、強い関連性のあるものがまとまり、弱い関連性のあるものが引き離されます。

また、ノードとの関係の数が多いと、そのノードがより大きなサイズでレンダリングされ、同様の効果が得られるバージョンも見ました。

おそらく、必要なコーディング作業の大部分を負担する可能性のある、力で方向付けられたレイアウトのための市販のツールがたくさんあります。ライブラリの推奨を行う必要がある場合、d3が私の出発点になりますが、それはそれがよく知られていて広く使用されているからです。

4-地理ベース

このアイデアは、質問全体で地理について言及する唯一の場所です。視覚化の基礎となるほど地理は重要ですか?この種の視覚化を使用すると、関係の強さを示す方法が制限され、クラスターが見えにくくなります。

5-???

それがどのように機能するのか私にはわからないので、これ以上コメントすることはできません。

私の推薦

人と人との関係を簡単に確認し、人がどのようにグループ化するかを確認したい場合は、フォース指向のレイアウトを強くお勧めします。あなたが提案しているノードの数では、パフォーマンスが問題になる可能性がありますが、それは私が最初に取り組むアプローチだと思います。

地理的なクラスターを表示しようとしている場合は、#4が機能する可能性があります。線の太さと線の不透明度を組み合わせて、各関係の強さを示すことをお勧めします。

0
Adrian Long