更改 networkX 中边的颜色
Changing the color of edges in networkX
我正在使用 networkX
绘制图表。我想改变图表的颜色。我在互联网上关注样本,以下是我的代码:
def draw_graph():
colors = []
for i in range (nCount):
for j in range (nCount):
if ifActive(i,j,timeStep) == 1:
colors.append("r")
else:
colors.append("b")
print ("colores = ", colors)
color_map = []
nColor= nx.get_node_attributes(graph,'color')
for nc in nColor:
color_map.append(nColor[nc])
nx.draw(graph,pos=nx.spring_layout(graph),edge_color = colors , node_color = color_map,with_labels = True )
但我遇到了以下错误:
edge_color must be a color or list of one color per edge
如何解决这个错误?
解决您的问题的一个简单方法是使用 networkx 的分离功能。
这是一个简单的例子:
import networkx as nx
import matplotlib.pyplot as plt
graph = nx.erdos_renyi_graph(30,0.4)
options = ['r','b']
colors = []
for i in range(len(graph.edges())):
if(i%2 == 0):
colors.append(options[0])
else:
colors.append(options[1])
plt.figure(figsize=(10,10))
pos = nx.spring_layout(graph)
nx.draw_networkx_nodes(graph,pos=pos)
nx.draw_networkx_edges(graph,edge_color=colors,pos=pos)
具有不同边缘颜色的 ER 网络示例:
编辑:
在您的 for 循环中,您正在考虑两次相同的边缘。尝试更改为以下内容:
for i in range (nCount):
for j in range (0,i):
if ifActive(i,j,timeStep) == 1:
colors.append("r")
else:
colors.append("b")
我正在使用 networkX
绘制图表。我想改变图表的颜色。我在互联网上关注样本,以下是我的代码:
def draw_graph():
colors = []
for i in range (nCount):
for j in range (nCount):
if ifActive(i,j,timeStep) == 1:
colors.append("r")
else:
colors.append("b")
print ("colores = ", colors)
color_map = []
nColor= nx.get_node_attributes(graph,'color')
for nc in nColor:
color_map.append(nColor[nc])
nx.draw(graph,pos=nx.spring_layout(graph),edge_color = colors , node_color = color_map,with_labels = True )
但我遇到了以下错误:
edge_color must be a color or list of one color per edge
如何解决这个错误?
解决您的问题的一个简单方法是使用 networkx 的分离功能。 这是一个简单的例子:
import networkx as nx
import matplotlib.pyplot as plt
graph = nx.erdos_renyi_graph(30,0.4)
options = ['r','b']
colors = []
for i in range(len(graph.edges())):
if(i%2 == 0):
colors.append(options[0])
else:
colors.append(options[1])
plt.figure(figsize=(10,10))
pos = nx.spring_layout(graph)
nx.draw_networkx_nodes(graph,pos=pos)
nx.draw_networkx_edges(graph,edge_color=colors,pos=pos)
具有不同边缘颜色的 ER 网络示例:
编辑: 在您的 for 循环中,您正在考虑两次相同的边缘。尝试更改为以下内容:
for i in range (nCount):
for j in range (0,i):
if ifActive(i,j,timeStep) == 1:
colors.append("r")
else:
colors.append("b")