matplotlib 坐标格式

7 投票
2 回答
5075 浏览
提问于 2025-04-17 14:33

我有一个简单的图像,像这样:

matplotlib.pyplot as plt

pt_no = [1,2,3]
coord_x = [6035763.111, 6035765.251, 6035762.801]
coord_y = [6439524.100, 6439522.251, 6439518.298]

fig, ax = plt.subplots()
ax.scatter(coord_y, coord_x, marker='x')
ax.axes.get_xaxis().set_visible(False)
ax.axes.get_yaxis().set_visible(False)
for i, txt in enumerate(pt_no):
    ax.annotate(txt, (coord_y[i], coord_x[i]))

plt.show()

但是当我移动鼠标或者把光标放在图像上时,右下角显示的坐标看起来像是6.43953e + 06。
我想要显示我的输入坐标,完全按照原样,比如说
6439518.298,而不是6.43953e + 0。

提前谢谢你!

2 个回答

8

你还可以通过设置 format_coord 来完全覆盖默认的标签显示方式。

ax.format_coord = lambda x, y: "({0:f}, ".format(y) +  "{0:f})".format(x)

示例API文档

10

这个 ax.fmt_xdata 属性可以设置成一个函数,用来格式化显示的字符串。

比如说:

ax.fmt_xdata = lambda x: "{0:f}".format(x)
ax.fmt_ydata = lambda x: "{0:f}".format(x)

撰写回答