Note
Go to the end to download the full example code.
集群布局#
这个示例展示了如何结合多种布局来可视化节点集群。
这里使用的方法可以推广到可视化层次聚类,例如通过结合具有不同比例因子的布局来展示节点集群的集群。
import networkx as nx
import matplotlib.pyplot as plt
G = nx.davis_southern_women_graph() # 示例图
communities = nx.community.greedy_modularity_communities(G)
# 计算节点簇的位置,就好像它们本身是图中的节点一样
# 使用更大的比例因子构建超图
supergraph = nx.cycle_graph(len(communities))
superpos = nx.spring_layout(G, scale=50, seed=429)
# 使用“超级节点”的位置作为每个节点簇的中心
centers = list(superpos.values())
pos = {}
for center, comm in zip(centers, communities):
pos.update(nx.spring_layout(nx.subgraph(G, comm), center=center, seed=1430))
# 节点按集群着色
for nodes, clr in zip(communities, ("tab:blue", "tab:orange", "tab:green")):
nx.draw_networkx_nodes(G, pos=pos, nodelist=nodes, node_color=clr, node_size=100)
nx.draw_networkx_edges(G, pos=pos)
plt.tight_layout()
plt.show()
Total running time of the script: (0 minutes 0.053 seconds)