社会网络的关联性与凝聚度指标
import networkx as nx
import matplotlib.pyplot as plt
#与关联性有关的概念
#构建网络图
G = nx.path_graph(4)
G.add_nodes_from([4,5,6,7,8])
G.add_edges_from([(4,5),(4,6),(5,6),(6,7),(7,8)])
#绘制网络图
nx.draw(G,with_labels=True,font_size=20,node_size=2000,pos=nx.kamada_kawai_layout(G))
plt.show()
#判断是否为关联图
print(nx.is_connected(G))
#返回所有子图的节点
print(sorted(nx.connected_components(G), key=len, reverse=True))
#返回最大连通子图的节点
largest_cc = max(nx.connected_components(G), key=len)
print(largest_cc)
#得到最大连通子图
G1=max(nx.connected_component_subgraphs(G),key=len)
#绘制最大连通子图
nx.draw(G1,with_labels=True,font_size=20,node_size=2000,pos=nx.kamada_kawai_layout(G))
plt.show()
#判断图中是否存在桥
print(nx.has_bridges(G))
#返回图中存在的所有桥
print(list(nx.bridges(G)))
import networkx as nx
import matplotlib.pyplot as plt
#构建网络图
G = nx.Graph()
G.add_nodes_from([1,2,3,4,5])
G.add_edges_from([(1,2),(1,3),(2,3),(3,4),(4,5)])
print(nx.shortest_path(G,source=1,target=4)) #最短路径
print(nx.shortest_path_length(G,source=1,target=4)) #距离
print(nx.diameter(G)) #直径
print(nx.density(G)) #密度