J'ai donc la fonction suivante pour dessiner un problème sur lequel je travaille. C'est fondamentalement un problème de détection de nœud critique ou d'interdiction. J'ai quelques valeurs x, et la décision d'attaquer le noeud z. Fondamentalement, je veux colorier mon graphique avec des nœuds actifs et inactifs et des nœuds qui sont traités/attaquer. Voici ce que j'ai jusqu'ici.Légende pour la fonction de dessin networkx
def draw_solution (g, zsolution, xsolution, T, xmin = 0, filename = 'test.pdf'):
# draw solution
pos = {n: ndata['coord'] for n,ndata in g.nodes_iter(data=True)}
ncolour=[]
for n,ndata in g.nodes_iter(data=True):
if ndata['fuel_load'] < xmin:
ncolour.append('gold')
else:
ncolour.append('yellowgreen')
pp = PdfPages(filename)
fig = plt.figure(figsize=(11.7,8.3))
fig.suptitle('full graph and initial fuel load')
plt.axis('off')
nx.draw_networkx(g, pos, font_size=9, node_color=ncolour)
fig.savefig(pp, format='pdf')
fig.clf()
for t in range(T):
g_copy = g.copy()
#node colour
ncolour=[]
for i in g.nodes_iter():
if zsolution[i,t] > 0.99:
ncolour.append('lightcoral')
#g_copy.remove_edges_from(g.edges(i))
elif xsolution[i,t] < xmin:
ncolour.append('gold')
g_copy.remove_edges_from(g.edges(i))
else:
ncolour.append('yellowgreen')
plt.axis('off')
fig.suptitle('t={}, before treatment'.format(t))
nx.draw_networkx(g_copy, pos, font_size=9, node_color=ncolour, label=ncolour)
fig.savefig(pp, format='pdf')
fig.clf()
g_copy = g.copy()
#node colour
ncolour=[]
for i in g.nodes_iter():
if zsolution[i,t] > 0.99:
ncolour.append('lightcoral')
g_copy.remove_edges_from(g.edges(i))
elif xsolution[i,t] < xmin:
ncolour.append('gold')
g_copy.remove_edges_from(g.edges(i))
else:
ncolour.append('yellowgreen')
plt.axis('off')
fig.suptitle('t={}, after treatment'.format(t))
nx.draw_networkx(g_copy, pos, font_size=9, node_color=ncolour, label=ncolour)
fig.savefig(pp, format='pdf')
fig.clf()
pp.close()
fig.clf()
Pour une raison quelconque, je ne peux pas obtenir le droit de la légende?
Aidez s'il vous plaît! Merci!
Qu'est-ce que vous voulez que cela n'arrive pas? - Que veux-tu dire par "la légende"? – Joel
Je veux une légende correspondant aux couleurs. donc je voudrais quelque chose comme lightcoral - attaque or - actif yellowgreen - inactif –