2016-04-08 13 views
2

私はNxNノードで作られた規則的なグリッドネットワークを持っています。私はそれをプロットすることができますが、私はまた、minimum spanning treeをプロットしたいと思います。これは、「すべての頂点を含み木であるサブグラフ」です。Python:ネットワークの最小スパニングツリーを視覚化する方法は?

これは私がネットワークを作成する方法である:

from __future__ import print_function, division 
import numpy 
from numpy import * 
import networkx as nx 
from networkx import * 
import matplotlib.pyplot as plt 

N=30 
G=nx.grid_2d_graph(N,N) 
pos = dict((n, n) for n in G.nodes()) 
labels = dict(((i, j), i + (N-1-j) * N) for i, j in G.nodes()) 
nx.relabel_nodes(G,labels,False) 
inds=labels.keys() 
vals=labels.values() 
inds.sort() 
vals.sort() 
pos2=dict(zip(vals,inds)) 
nx.draw_networkx(G, pos=pos2, with_labels=False, node_size = 15) 

enter image description here

これは私が最小スパニングツリーを計算する方法である:

T=nx.minimum_spanning_tree(G) 

これはちょうどGのようなグラフを生成し、とTのノードと同じノードがGであり、そのエッジが選択されています。したがって、私はTをプロットしたいと思いますが、これは私がやったことです:

plt.figure() 
nx.draw_networkx(G, pos=pos2, with_labels=False, node_size = 15) 
plt.show() 

しかし、私は単純に、ネットワークが再びプロットを得ます。私の最小スパニングツリーがプロットされていることを確認するために最後の行をどのように修正できますか?

+1

パスTの代わりにGの第二draw_networkxにはすべきですか? – DaVinci

+0

私は非常にばかな間違いをしました。謝罪します。 – FaCoffee

答えて

2
plt.figure() 
nx.draw_networkx(G, pos=pos2, with_labels=False, node_size = 15) 
plt.show() 

plt.figure() 
nx.draw_networkx(T, pos=pos2, with_labels=False, node_size = 15) 
plt.show() 
関連する問題