对于此处的“随机”标签,您只需像这样每次随机分配要添加到图表中的标签:
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)
在代码中假设 Graph 有偶数个节点,所以“红色”('R') 和“蓝色”('B') 节点的数量可以相同。
对于标签,循环遍历所有节点,然后在红色或蓝色之间随机选择,直到一半的节点被分配为红色或蓝色。然后它只是为所有其他人分配另一种颜色。