如何解决使用 networkx 修正图形中边标签的位置
我有一段代码来绘制图形。为此,我正在阅读一些文件以获取节点和权重。
plt.title('Grafo Completo Github')
pos = nx.spring_layout(g)
nx.draw(g,with_labels=True,node_color="skyblue",font_size=8)
nx.draw_networkx_edge_labels(g,pos=pos,edge_labels=nx.get_edge_attributes(g,'weight'),label_pos=1,rotate=False,font_size=8)
plt.savefig("grafo_github.jpg")
plt.show()
但是,这会产生下面的图像。如何更正边缘标签的位置? 边缘标签位置错误:
解决方法
真正的错误似乎是属性 label_pos
的值。
来自the docs of draw_networkx_edge_labels
:
label_pos (float) – 边标签沿边的位置(0=head,0.5=center,1=tail)
通过使用 label_pos=1
,标签出现在节点后面,因为它们的位置也在“边缘尾部”上。
将此值更改为 0.5
应该可以解决问题:
nx.draw_networkx_edge_labels(T,pos,edge_labels=nx.get_edge_attributes(T,'weight'),label_pos=0.5,rotate=False,font_size=8)
或者,由于 0.5
是默认值,只需将其删除即可。
pos = nx.spring_layout(g)
nx.draw(g,pos=pos,with_labels=True,node_color="skyblue",font_size=8)
nx.draw_networkx_edge_labels(T,font_size=8)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。