7

私は NetworkX を初めて使用します。現在、すべてのノードをこの特定のノードに接続することに成功しています。次にやりたいことは、インタラクティブにすることです。たとえば、カーソルを使用してドラッグして各ノードを移動できるようにします。matplotlib を使用する必要があることはわかっていますが、使用方法がわかりません。誰でも私を助けることができますか?

ここに画像の説明を入力

私のコードは次のとおりです。

import matplotlib.pyplot as plt
import networkx as nx
import itertools

d = [name of nodes]
f = [number per nodes]

for i in d:
  G.add_edge('"' + i + '"',b)

pos=nx.fruchterman_reingold_layout(G, k=0.5, iterations=5)

nx.draw_networkx_nodes(G,pos,node_size=130, node_color="white")

nx.draw_networkx_edges(G,pos, width=0.2,alpha=1,edge_color='black')

nx.draw_networkx_labels(G,pos,font_size=7,font_family='sans-serif')

for i,j in itertools.izip(d,f):
    nx.draw_networkx_edge_labels(G,pos, {('"' + i + '"',b):j}, font_size=7, label_pos= 0.80)

plt.axis('off')
plt.show()
4

2 に答える 2

6

matplotlib を使用するのは難しいようです (実際にはそのように設計されていません)。Networkx 描画モジュールはかなり貧弱で、主にノードなどにカスタム散布図を使用します。

別の解決策を提案します:

  • グラフを JSON または GEXF にエクスポートし、Javascript グラフ描画ライブラリを使用して、SigmaJs や VivaGraphJs などのグラフをインタラクティブます

私のブログの Web ページに埋め込まれた NetworkX で作成された実際のグラフの例を見つけてください。この例ではノードは静的ですが、ノードをクリックするとその隣接ノードが強調表示されます。

提案された対話型グラフ描画ライブラリの公式の例:

于 2015-07-24T09:43:07.187 に答える