Легенда, основанная на цвете узлов графа NetworkX - PullRequest
0 голосов
/ 27 марта 2020

Я пытаюсь создать сетевой график с помощью 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 голосов
/ 27 марта 2020

Исправлена ​​легенда с -

import Color from colour

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

...