我看到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)
这将给出预期的输出,即边缘的title属性。在
^{pr2}$当我使用edge_标签进行打印时
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()
我看到下图,其中显示了所有边属性。我只希望出现标题。在
我正在构建的图是一个循序渐进的过程,因此随着更多信息的处理,边缘标签会得到更新。如何在图形构造结束时只使用我想要的属性来标记边?在
使用
而不是
^{pr2}$收益率
由于call signature for ^{} 看起来像这样:
该函数要求由关键字参数
edge_labels
提供标签。由于调用签名还包括**kwds
,伪参数labels
被静默地吞没,this piece of code生成您在结果中看到的“奇怪”标签。在
相关问题 更多 >
编程相关推荐