NetworkX cmap对节点颜色没有任何影响

时间:2018-03-26 22:03:01

标签: python matplotlib networkx

我正在尝试使用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)

1 个答案:

答案 0 :(得分:1)

要使cmap选项起作用,node_color必须是浮点数列表,而不是字符串。此外,还必须提供vminvmax选项。使用cmapvmin以及vmax参数将数值映射到颜色。 (见help(nx.draw_networkx_nodes)。)