如何通过 for 循环在网络中分配颜色和边
How to assign colors and edges within a network through for loops
我正在通过使用 for 循环来缩小代码行来描绘一个无向图。但是,我面临两个问题
import networkx as nx
import matplotlib.pyplot as plt
G = nx.DiGraph()
G.add_nodes_from(range(1,8,1))
我试图通过以下循环分配给每个节点的颜色没有出现在最终图中
color_list = []
for node in G.nodes: # iteration over nodes
if node < 4:
color_list.append('gold')
elif node >= 4:
color_list.append('violet')
elif node == 6:
color_list.append('limegreen')
else:
color_list.append('darkorange')
我正在努力创建一个有效的循环以在以下节点内创建边(我已经检查并应用了很多解决方案,但我无法使用 for 循环来做到这一点)
G.add_edge(1,2)
G.add_edge(1,3)
G.add_edge(2,6)
G.add_edge(3,7)
G.add_edge(4,6)
G.add_edge(4,7)
G.add_edge(5,6)
#nx.draw(G, node_color = color_list, with_labels =True)
pos = nx.spring_layout(G)
nx.draw_networkx_nodes(G, pos)
nx.draw_networkx_labels(G, pos)
nx.draw_networkx_edges(G, pos, edge_color='black')
plt.show()
这是我得到的最终数字
有没有人可能有什么建议?让我知道这些错误发生在哪里。谢谢
您在绘制网络时忘记指定 node_color=color_list
。
例如,您可以使用:nx.draw(G, pos, node_color=color_list,with_labels=True)
来绘制网络。然后您将得到以下结果:
另请注意,就目前而言,您永远不会在图表中获得颜色 limegreen
和 darkorange
,因为条件 node < 4
和 node >= 4
已经分区节点集。
我正在通过使用 for 循环来缩小代码行来描绘一个无向图。但是,我面临两个问题
import networkx as nx
import matplotlib.pyplot as plt
G = nx.DiGraph()
G.add_nodes_from(range(1,8,1))
我试图通过以下循环分配给每个节点的颜色没有出现在最终图中
color_list = []
for node in G.nodes: # iteration over nodes
if node < 4:
color_list.append('gold')
elif node >= 4:
color_list.append('violet')
elif node == 6:
color_list.append('limegreen')
else:
color_list.append('darkorange')
我正在努力创建一个有效的循环以在以下节点内创建边(我已经检查并应用了很多解决方案,但我无法使用 for 循环来做到这一点)
G.add_edge(1,2)
G.add_edge(1,3)
G.add_edge(2,6)
G.add_edge(3,7)
G.add_edge(4,6)
G.add_edge(4,7)
G.add_edge(5,6)
#nx.draw(G, node_color = color_list, with_labels =True)
pos = nx.spring_layout(G)
nx.draw_networkx_nodes(G, pos)
nx.draw_networkx_labels(G, pos)
nx.draw_networkx_edges(G, pos, edge_color='black')
plt.show()
这是我得到的最终数字
有没有人可能有什么建议?让我知道这些错误发生在哪里。谢谢
您在绘制网络时忘记指定 node_color=color_list
。
例如,您可以使用:nx.draw(G, pos, node_color=color_list,with_labels=True)
来绘制网络。然后您将得到以下结果:
另请注意,就目前而言,您永远不会在图表中获得颜色 limegreen
和 darkorange
,因为条件 node < 4
和 node >= 4
已经分区节点集。