我正在尝试使用networkx在节点网络中可视化社区,代码在检测社区方面工作得很好但是它是灰度的。当与nodelist和node_color参数一起使用时,我无法让cmap参数对输出网络产生任何影响。
当前输出:https://i.imgur.com/0uf2DEt.png
import networkx as nx
import matplotlib.pyplot as plt
import community
g=nx.read_edgelist('communities.txt',create_using=nx.Graph(),nodetype=int)
partition = community.best_partition(g)
print nx.info(g)
size = float(len(set(partition.values())))
print "Communities: " + str(size)
sp=nx.spring_layout(g)
plt.axis('off')
count = 0
for group in set(partition.values()) :
count += 1
list_nodes = [nodes for nodes in partition.keys() if partition[nodes] == group]
nx.draw_networkx_nodes(g, pos=sp,
nodelist=list_nodes,
with_labels=False,
node_size=30,
node_color = str(count/size),
cmap=plt.get_cmap('RdYlBu'))
nx.draw_networkx_edges(g, sp, alpha=0.3)
plt.show(g)
答案 0 :(得分:1)
要使cmap
选项起作用,node_color
必须是浮点数列表,而不是字符串。此外,还必须提供vmin
和vmax
选项。使用cmap
和vmin
以及vmax
参数将数值映射到颜色。 (见help(nx.draw_networkx_nodes)
。)