基于NetworkX图节点颜色的图例

时间:2020-03-26 22:16:43

标签: python-3.x matplotlib data-visualization networkx

我正在尝试使用NetworkX制作网络图,并且遇到两个问题。我无法将背景颜色设置为透明或白色,并且卡在浅灰色背景中。当我尝试将此图形另存为png时,它给了我一个空白图像。

此外,我正在尝试根据节点的颜色在图上添加图例,但是我不确定在那里做错了什么。

有人可以帮助解决此问题吗?

plt.figure(figsize=(24,18))
plt.rcParams['figure.facecolor'] = 'white'   # DOESN'T WORK

G = nx.Graph()
pos = nx.random_layout(G)
nx.draw_networkx_nodes(G, pos, alpha=0.5, linewidths=3, node_color=[x[1]['color'] for x in G.nodes(data=True)], node_size=[150*x[1]['size'] for x in G.nodes(data=True)])
nx.draw_networkx_labels(G, pos, font_size=10, font_color='#1b1b1b', font_weight='bold', font_family='sans-serif')
nx.draw_networkx_edges(G, pos, edge_color='grey', width=[0.4*x[2]['width'] for x in G.edges(data=True)])
plt.legend(dict_colors.values(), dict_colors.keys())  # DOESN'T WORK
plt.savefig("Network.png", transparent=True)  # DOESN'T WORK
plt.show()

1 个答案:

答案 0 :(得分:0)

用-修复了图例-

import Color from colour

plt.legend(handles=[Patch(facecolor=Color(val).hex, label=key) for key, val in dict_colors.items()])