1 回答
TA贡献1886条经验 获得超2个赞
不幸的nx.draw_networkx_nodes
是不接受可迭代的形状,因此您必须遍历节点并单独绘制它们。此外,我们必须索引生成的cmap
,否则,单值社区值将映射到相同的初始 cmap 颜色。对于可能的形状,我只是复制文档中提到的可用形状的字符串,并根据分区号对其进行索引:
# load the karate club graph
G = nx.karate_club_graph()
# compute the best partition
partition = community_louvain.best_partition(G)
cmap = cm.get_cmap('viridis', max(partition.values()) + 1)
shapes = 'so^>v<dph8'
plt.figure(figsize=(12,8))
# draw the graph
pos = nx.spring_layout(G)
# color the nodes according to their partition
cmap = cm.get_cmap('viridis', max(partition.values()) + 1)
nx.draw_networkx_edges(G, pos, alpha=0.5)
for node, color in partition.items():
nx.draw_networkx_nodes(G, pos, [node], node_size=100,
node_color=[cmap.colors[color]],
node_shape=shapes[color])
添加回答
举报