Python NetworkX中的边标签不正确

Python NetworkX中的边标签不正确,python,networkx,Python,Networkx,我发现networkx软件包有些奇怪。下面是一个最小的具体可验证的示例 import networkx as nx import matplotlib.pyplot as plt G = nx.DiGraph() G.add_edge('A', 'B', weight=1, title='ab', subtitle='testing') edge_labels = nx.get_edge_attributes(G, 'title') print(edge_labels) 这将提供预期的输出,

我发现networkx软件包有些奇怪。下面是一个最小的具体可验证的示例

import networkx as nx
import matplotlib.pyplot as plt

G = nx.DiGraph()
G.add_edge('A', 'B', weight=1, title='ab', subtitle='testing')
edge_labels = nx.get_edge_attributes(G, 'title')
print(edge_labels)
这将提供预期的输出,即边的标题属性

{('A', 'B'): 'ab'}
当我使用边缘标签进行打印时

fig = plt.figure()
ax1 = plt.subplot2grid((1, 1), (0, 0))
pos = nx.spring_layout(G)
nx.draw(G, pos, with_labels=True)

nx.draw_networkx_edge_labels(G, pos, labels=edge_labels)
plt.show()
我看到下图,其中显示了所有边属性。我以为只有标题会出现

我正在构建的图形是一个循序渐进的过程,因此边标签会随着更多信息的处理而更新。如何在图形构造结束时仅使用所需的属性标记边?

使用

nx.draw_networkx_edge_labels(G, pos, edge_labels=edge_labels)
而不是

nx.draw_networkx_edge_labels(G, pos, labels=edge_labels)

屈服


因为这张照片是这样的:

draw_networkx_edge_labels(G, pos, edge_labels=None, label_pos=0.5,
    font_size=10, font_color='k', font_family='sans-serif',
    font_weight='normal', alpha=1.0, bbox=None, ax=None, rotate=True, **kwds)
该函数希望标签由关键字参数
edge\u labels
提供。由于呼叫签名还包括
**kwds
,因此伪参数
标签会被默默吞没,并且

生成您在结果中看到的“奇怪”标签。

使用

nx.draw_networkx_edge_labels(G, pos, edge_labels=edge_labels)
而不是

nx.draw_networkx_edge_labels(G, pos, labels=edge_labels)

屈服


因为这张照片是这样的:

draw_networkx_edge_labels(G, pos, edge_labels=None, label_pos=0.5,
    font_size=10, font_color='k', font_family='sans-serif',
    font_weight='normal', alpha=1.0, bbox=None, ax=None, rotate=True, **kwds)
该函数希望标签由关键字参数
edge\u labels
提供。由于呼叫签名还包括
**kwds
,因此伪参数
标签会被默默吞没,并且

生成您在结果中看到的“奇怪”标签