[英]NetworkX does not show edge label for edge to the same node
我发现 NetworkX 图形绘制库有一个奇怪的行为:如果边向后指向同一个节点,它不会绘制边 label。
我很确定它是 NetworkX 的一项功能,因为我使用相同的方法创建了所有边缘标签,并且它适用于非循环边缘,正如您在图像中看到的那样。
是否有任何显示选项可以帮助显示所有边缘标签?
import networkx as nx
import matplotlib.pyplot as plt
g = nx.DiGraph()
edge_labels = dict()
g.add_edge(0, 1 )
#ATTENTION - this will work
edge_labels[(0, 1)] = '01'
g.add_edge(0, 0)
#ATTENTION - this line will not work
edge_labels[(0, 0)] = '00'
pos = nx.spring_layout(g)
nx.draw(g, pos, with_labels=True, font_weight='bold')
nx.draw_networkx_edge_labels(g, pos, edge_labels=edge_labels,
font_color='red')
plt.show()
例子:
给定两个节点(x1, y1)
和(x2, y2)
的坐标,label position 计算为
(x, y) = (
x1 * label_pos + x2 * (1.0 - label_pos),
y1 * label_pos + y2 * (1.0 - label_pos),
)
其中label_pos
的默认值为0.5
[source] 。
这意味着自边缘的边缘 label 与节点 position 重叠,这就是您看不到它的原因,除非增加字体大小。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.