Python 使用networkx绘制图形时,如何在边上使用颜色?

Python 使用networkx绘制图形时,如何在边上使用颜色?,python,networkx,Python,Networkx,使用networkx打印时,如何使用颜色值处理一组边 例如,这将绘制3个节点 edges = pd.DataFrame({'node_1': [1, 2, 3], 'node_2': [2, 3, 1], 'edge_id': [5, 4, 6]}) G = nx.from_pandas_edgelist(edges, 'node_1', 'node_2', True, nx.Graph()) nx.dra

使用networkx打印时,如何使用颜色值处理一组边

例如,这将绘制3个节点

edges = pd.DataFrame({'node_1': [1, 2, 3],
                      'node_2': [2, 3, 1],
                      'edge_id': [5, 4, 6]})

G = nx.from_pandas_edgelist(edges, 'node_1', 'node_2', True, nx.Graph())
nx.draw(G, node_size = 100)
plt.draw()
plt.show()
我怎样才能使用像这样的数据对边缘进行着色



draw = pd.DataFrame({'edge_id': [5, 4, 6],
                    'edge_colour': ['AE6017', 'F15B2E', 'F15B2E']})

可以在单独的步骤中绘制边和节点。在那里,您可以为其中任何一个提供颜色列表。为了单独绘制它们,首先需要计算它们的位置。对于大多数图,通过调用可以获得最佳布局

演示代码:

将熊猫作为pd导入
将matplotlib.pyplot作为plt导入
将networkx导入为nx
edges=pd.DataFrame({'node_1':[1,2,3],
'节点2':[2,3,1],
“edge_id”:[5,4,6]})
G=nx.from_pandas_edgelist(边,'node_1','node_2',True,nx.Graph())
位置=nx.弹簧布置图(G)
nx.draw_networkx_nodes(G,pos,node_size=100,node_color='deepskyblue')
cmap_颜色=plt.cm.Set1.colors
边缘颜色=[cmap\U颜色[edge\U ind%len(cmap\U颜色)],用于范围内的边缘标识(len(G.edges))]
nx.绘制网络X边(G,位置,宽度=1.0,边颜色=边颜色)
plt.show()


或者,您也可以将
nx.draw
替换为
nx.draw\u networkx
类似于
nx.draw
,但允许更多选项。如果需要,可以给出位置,如果不需要,则自动计算位置。它接受与nx相同的
edge\u color=…
。draw\u networkx\u edges

您可以在单独的步骤中绘制边和节点。在那里,您可以为其中任何一个提供颜色列表。为了单独绘制它们,首先需要计算它们的位置。对于大多数图,通过调用可以获得最佳布局

演示代码:

将熊猫作为pd导入
将matplotlib.pyplot作为plt导入
将networkx导入为nx
edges=pd.DataFrame({'node_1':[1,2,3],
'节点2':[2,3,1],
“edge_id”:[5,4,6]})
G=nx.from_pandas_edgelist(边,'node_1','node_2',True,nx.Graph())
位置=nx.弹簧布置图(G)
nx.draw_networkx_nodes(G,pos,node_size=100,node_color='deepskyblue')
cmap_颜色=plt.cm.Set1.colors
边缘颜色=[cmap\U颜色[edge\U ind%len(cmap\U颜色)],用于范围内的边缘标识(len(G.edges))]
nx.绘制网络X边(G,位置,宽度=1.0,边颜色=边颜色)
plt.show()

或者,您也可以将
nx.draw
替换为
nx.draw\u networkx
类似于
nx.draw
,但允许更多选项。如果需要,可以给出位置,如果不需要,则自动计算位置。它接受与
nx.draw\u networkx\u edges
相同的
edge\u color=…