如何在networkx中正确添加和绘制边缘标签?

问题描述

我要添加标签

G.add_edge(node1,node2,label=label)

绘图

pos = nx.spring_layout(G)

nx.draw(G,pos)
nx.draw_networkx_edge_labels(G,pos)

并获得

enter image description here

我不想要的。我不希望标签看起来像{'label': 'a"},而只是a

有可能吗?我看到了一些示例,其中标签传递到了draw函数中,这对我不利。我希望标签存储在图形中并在以后显示

解决方法

您可以使用edge_labels参数指定要绘制的内容。示例:

>>> import networkx as nx
>>> G = nx.Graph()
>>> G.add_edge(1,2,label='a')
>>> pos = nx.spring_layout(G)                                                    
>>> nx.draw(G,pos)                                                              
>>> nx.draw_networkx_edge_labels(G,pos,edge_labels=nx.get_edge_attributes(G,'label'))
{(1,2): Text(0,'a')}