1. 学ぶ
  2. /
  3. コース
  4. /
  5. Pythonで学ぶネットワーク分析入門

Connected

演習

マトリックスプロットによる可視化

最初の「高度な」グラフ可視化手法として、マトリックスプロットを試してみましょう。nxviz には、このための matrix() 関数が用意されています。この関数は、nxviz のトップレベル API 関数と同様に、plt.show() で表示できる matplotlib の axes オブジェクトを返します。

nxviz は、グラフを体系的に可視化するためのパッケージです。内部では、matrix 関数が nx.to_numpy_array(G) を使用しており、グラフを行列形式に変換します。この行列では、各ノードが 1 つの行と 1 つの列に対応し、2 つのノード間のエッジは値 1 で表されます。ただし、この変換では weight メタデータのみが保持され、それ以外のメタデータはすべて失われます。これは assert 文で確認できます。

対応する nx.from_numpy_array(A) を使うと、NumPy 配列からグラフを素早く作成できます。デフォルトのグラフタイプは Graph() ですが、DiGraph() にしたい場合は、create_using キーワード引数で指定する必要があります(例:nx.from_numpy_array(A, create_using=nx.DiGraph))。

なお、matplotlib.pyplot と networkx はあらかじめ plt と nx としてインポートされており、グラフ T も事前に読み込まれています。処理を簡単かつ高速にするため、ネットワークから 100 本のエッジのみを抽出してあります。

指示

100 XP
  • nxviz から matrix をインポートしましょう。
  • グラフ T をマトリックスプロットとして表示しましょう。手順は以下のとおりです。
    • nv.matrix() 関数に T を引数として渡し、m というマトリックスプロットを作成します。
    • plt.show() を使ってプロットを表示します。
  • グラフを行列形式に変換し、その行列から有向グラフとして NetworkX 形式に戻す処理は、すでに記述されています。
  • 各ノードから category メタデータフィールドが失われていることを確認する処理も、すでに記述されています。'回答を送信' をクリックして結果を確認しましょう!