如何绘制带node ID的社群并按规模设置节点颜色,解决代码语法报错
社群节点绘制语法错误解决
你代码的核心问题是直接将社群对象community与数值比较,实际需要先通过len(community)获取社群的节点数量后再做判断,同时补充剩余的颜色分支、节点标签绘制逻辑即可。
完整实现代码
import networkx as nx # 计算当前社群节点总数 comm_size = len(community) # 按规则匹配节点颜色 if comm_size < 10: node_color = "green" elif 10 <= comm_size <= 15: node_color = "orange" else: node_color = "red" # 绘制当前社群的节点,指定nodelist避免绘制全图节点 nx.draw_networkx_nodes(G, pos=pos, nodelist=community, node_color=node_color) # 绘制节点ID标签 nx.draw_networkx_labels(G, pos=pos, labels={node: node for node in community})
注意事项
如果你需要批量绘制多个社群,遍历每个社群重复执行上述逻辑即可;如果需要显示边,可额外调用
nx.draw_networkx_edges指定对应边列表绘制。
内容的提问来源于stack exchange,提问作者Kerri Zanini
相关产品推荐
相关产品推荐

