Networkx_找出最大联通子图及联通子图规模排序

G = nx.path_graph(4)#生成一个包含4个节点的线型网络(一字长蛇型),节点编号lebel从0到1



nx.draw(G,with_labels=True,label_size=1000,node_size=1000,font_size=20) plt.show()


G.add_path([10,11,12])#再来一个一字长蛇型网络,节点分别是10,11,12


【Networkx_找出最大联通子图及联通子图规模排序】
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


Networkx_找出最大联通子图及联通子图规模排序
文章图片


    推荐阅读