gpt4 book ai didi

python 和 networkx : how to change the color of nodes

转载 作者:太空宇宙 更新时间:2023-11-04 01:22:07 24 4
gpt4 key购买 nike

我正在使用 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()

最佳答案

您希望您的 node_color 是一个列表。在倒数第二行中,分配 node_color = node_color 会使所有节点成为分配给 node_color 的最后一个值。您想要的是一个长度与您拥有的节点数相等的列表。

    node_colors =[]
node_colors.append('r')

尝试:

    for i in range(0,N):
if i < N:
node_colors.append('b')
else:
node_colors.append('r')
nx.draw_circular(G, node_color = node_colors)
plt.show()

关于python 和 networkx : how to change the color of nodes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20523327/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com