【发布时间】:2018-07-22 02:31:34
【问题描述】:
我发现 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'}
当我使用 edge_labels 进行绘图时,
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()
我看到下图,其中显示了所有边缘属性。我希望只有标题会出现。
我正在构建的图形是一个分步过程,因此边缘标签会随着更多信息的处理而更新。如何在图构建结束时仅使用我想要的属性标记边缘?
【问题讨论】: