Я использую python и «networkx» для случайного назначения ребер кивкам. кивки находятся в двух категориях, и каждая категория имеет одинаковое количество узлов. код работает, но у меня есть один вопрос: как я могу изменить цвет узлов? теперь узлы обеих категорий имеют собственный цвет.python и networkx: как изменить цвет узлов
import numpy as np
import networkx as nx
import matplotlib.pyplot as plt
N = int(raw_input("Enter the number of each race to be used: "))
gamma = float(raw_input("Enter the probability of same-race ties: "))
delta = float(raw_input("Enter the probability of cross-race ties: "))
connectr11 = np.zeros((N,N),dtype=np.int32)
for i in range(0,N):
dval = np.diag((np.random.random_sample(size=(N-i))<gamma).astype(np.int32),i)
connectr11 += dval
if (i>0):
connectr11 += dval.T
##print connectr11
connectr22 = np.zeros((N,N),dtype=np.int32)
for i in range(0,N):
dval = np.diag((np.random.random_sample(size=(N-i))<gamma).astype(np.int32),i)
connectr22 += dval
if (i>0):
connectr22 += dval.T
##print connectr22
connectr12 = np.zeros((N,N),dtype=np.int32)
for i in range(0,N):
dval = np.diag((np.random.random_sample(size=(N-i))<delta).astype(np.int32),i)
connectr12 += dval
if (i>0):
connectr12 += dval.T
##print connectr12
connectr21 = np.zeros((N,N),dtype=np.int32)
for i in range(0,N):
dval = np.diag((np.random.random_sample(size=(N-i))<delta).astype(np.int32),i)
connectr12 += dval
if (i>0):
connectr12 += dval.T
##print connectr21
concr1x=np.concatenate((connectr11, connectr12), axis=0)
concrx2=np.concatenate((connectr21, connectr22), axis=0)
concr12=np.concatenate((concr1x, concrx2), axis=1)
##print concr12
print concr12
A=np.matrix(concr12)
G=nx.from_numpy_matrix(A)
for i in range(0,N):
if i < N:
G.node[i] = 1
node_color='b'
else:
G.node[i] = 0
node_color='r'
nx.draw_circular(G, node_color=node_color)
plt.show()
Много примеров рисунков с кодом здесь: http://networkx.github.io/documentation/latest/gallery.html – Aric