Changer la couleur des noeuds lors d'une mise en page de printemps + NetworkX

StackOverflow https://stackoverflow.com/questions/5850782

  •  27-10-2019
  •  | 
  •  

Question

Comment puis-je changer les nœuds d'une couleur où l'emplacement est inconnu

Alors j'ai vu ce lien sur stackoverflow où la réponse a été donnée pour une position explicitement définies de nœuds.

Mais dire que j'ai un graphique comme celui-ci

   G = nx.Graph()
   for i in range(10):
      G.add_node(i)
   for i in range(9):
      G.add_edge(i,i+1)
   pos = nx.spring_layout(G)
   node_num = random.randint(0,10)

Maintenant, si j'ai quelque chose que d'obtenir un nombre aléatoire et la couleur en bleu et laisser les autres être rouges .... comment pourrais-je mettre en œuvre à l'aide de l'attribut nodes_list de la fonction 'draw_networkx' Cela a des noeuds pour les entiers. Si vous pouvez donner une solution pour tout type de nom de noeud, il serait plus utile ....

Merci beaucoup ..

Était-ce utile?

La solution

Voici un code qui pourrait aider. Ce nœud aléatoire droits incorporels au bleu de la couleur et le reste des couleurs rouge.

import random
import matplotlib.pyplot as plt
import networkx as nx
G=nx.Graph()
G.add_edges_from([('a','b'),('b','d'),('c','e'),('b','e')])
pos=nx.spring_layout(G)
nodes=G.nodes()
random.shuffle(nodes)
blue=nodes.pop()
nx.draw_networkx_nodes(G,pos,nodelist=[blue],node_color='b')
nx.draw_networkx_nodes(G,pos,nodelist=nodes,node_color='r')
nx.draw_networkx_edges(G,pos)
plt.show()
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top