Для «случайной» маркировки здесь вам просто нужно назначить метки, которые вы добавляете на график, случайным образом каждый раз, как показано ниже:
import random
import networkx as nx
G=nx.Graph()
for x in range(6):
G.add_node(x)
for x in range(6):
for y in range(6):
G.add_edge(x,y)
pos=nx.spring_layout(G)
nx.draw_networkx_nodes(G,pos,
nodelist=[x for x in range(6)],
node_color='r',
node_size=500,
alpha=0.8)
nx.draw_networkx_edges(G,pos,
edgelist=[(x,y) for x in range(6) for y in range(6)],
width=4,alpha=0.5,edge_color='b')
labels={}
# Iterate through all nodes
for x in range(len(G.nodes())):
# Label node as either B or R until half of the nodes are labeled as either
if(list(labels.values()).count('R') == len(G.nodes())/2):
labels[x] = 'B'
if(list(labels.values()).count('B') == len(G.nodes())/2):
labels[x] = 'R'
else:
labels[x] = random.choice(['B', 'R'])
nx.draw_networkx_labels(G,pos,labels,font_size=16)
В коде предполагается, что график имеет четное количество узлов, так что там может быть «одинаковое количество« красных »(« R ») и« синих »(« B ») узлов.
Для маркировки: al oop перебирает все узлы и затем случайным образом выбирает между красным или синим, пока половина узлов не будет присвоена либо красному, либо синему. Затем он просто назначит всем остальным другой цвет.