使用 networkx 修正图形中边缘标签的位置
Correct position of edge labels in a graph plot using 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) – Position of edge label along edge (0=head, 0.5=center, 1=tail)
通过使用 label_pos=1
,标签出现在节点后面,因为它们的位置也在 'the edge tail' 上。
将此值更改为 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, pos, edge_labels=nx.get_edge_attributes(T, 'weight'), rotate=False, font_size=8)
我有一段代码可以画图。为此,我正在阅读一些文件以获取节点和权重。
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) – Position of edge label along edge (0=head, 0.5=center, 1=tail)
通过使用 label_pos=1
,标签出现在节点后面,因为它们的位置也在 'the edge tail' 上。
将此值更改为 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, pos, edge_labels=nx.get_edge_attributes(T, 'weight'), rotate=False, font_size=8)