Ändern Sie die Farbe von Knoten, wenn Sie in einem Federlayout+ NetworkX sind

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

  •  27-10-2019
  •  | 
  •  

Frage

Wie kann ich die Knoten einer Farbe ändern, an der die Position nicht bekannt ist?

Also habe ich das gesehen Verknüpfung auf stackoverflow, wo die Antwort für eine explizit festgelegte Positionen von Knoten gegeben wurde.

Aber sagen Sie, ich habe eine solche Grafik

   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)

Wenn ich jedoch etwas wie eine zufällige Zahl und färbe sie blau und lasse andere rot sein ... wie würde ich sie mithilfe mithilfe von ihnen implementieren nodes_list Attribut von 'draw_networkx' Funktion Dies hat Knoten für Ganzzahlen. Wenn Sie eine Lösung für jede Art von Knotennamen geben können, wäre dies hilfreicher ....

Vielen Dank..

War es hilfreich?

Lösung

Hier ist ein Code, der helfen könnte. Dies wählte einen zufälligen Knoten, um Blau zu färben und den Rest rot zu färben.

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()
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top