Networkx_找出最大聯通子圖及聯通子圖規模排序
阿新 • • 發佈:2019-01-24
import matplotlib.pyplot as plt
import networkx as nx
G=nx.path_graph(4)
G.add_path([10,11,12])
nx.draw(G,with_labels=True,label_size=1000,node_size=1000,font_size=20)
plt.show()
#[print(len(c)) for c in sorted(nx.connected_components(G),key=len,reverse=True)]
for c in sorted(nx.connected_components(G),key=len,reverse=True):
print(c) #看看返回來的是什麼?結果是{0,1,2,3}
print(type(c)) #型別是set
print(len(c)) #長度分別是4和3(因為reverse=True,降序排列)
largest_components=max(nx.connected_components(G),key=len) # 高效找出最大的聯通成分,其實就是sorted裡面的No.1
print(largest_components) #找出最大聯通成分,返回是一個set{0,1,2,3}
print(len(largest_components)) #4