Python Matplotlib显示错误的y轴值

Python Matplotlib显示错误的y轴值,python,python-3.x,matplotlib,Python,Python 3.x,Matplotlib,我的代码非常简单: values = [-2071238, -2071241, -2071240, -2071242, -2071244, -2071239, -2071221, -2071194, -2071224, -2071240, -2071244, -2071241, -2071240, -2071241, -2071237, -2071223, -2071205, -2071225, -2071238] indx = [0.0, 20.0, 40.0, 60.0, 80.0, 100

我的代码非常简单:

values = [-2071238, -2071241, -2071240, -2071242, -2071244, -2071239, -2071221, -2071194, -2071224, -2071240, -2071244, -2071241, -2071240, -2071241, -2071237, -2071223, -2071205, -2071225, -2071238]
indx = [0.0, 20.0, 40.0, 60.0, 80.0, 100.0, 120.0, 140.0, 160.0, 180.0, 200.0, 220.0, 240.0, 260.0, 280.0, 300.0, 320.0, 340.0, 360.0]

plt.scatter(indx, values)

#rendering
plt.xlabel("Axis 1")
plt.ylabel("Axis 2")
title = "All"
plt.title(title)
plt.savefig(title + ".png")
plt.show()
然而,得出的数字如下:

这显然不是每个点都有好的y值


我是做错了什么还是忘记了什么?

您的体形在y轴上确实有很好的值,但它们有偏移量。可以禁用偏移:

import matplotlib.pyplot as plt

values = [-2071238, -2071241, -2071240, -2071242, -2071244, -2071239, -2071221, -2071194, -2071224, -2071240, -2071244, -2071241, -2071240, -2071241, -2071237, -2071223, -2071205, -2071225, -2071238]
indx = [0.0, 20.0, 40.0, 60.0, 80.0, 100.0, 120.0, 140.0, 160.0, 180.0, 200.0, 220.0, 240.0, 260.0, 280.0, 300.0, 320.0, 340.0, 360.0]

plt.scatter(indx, values)

# disabling the offset on y axis
ax = plt.gca()
ax.ticklabel_format(useOffset=False)

#rendering
plt.xlabel("Axis 1")
plt.ylabel("Axis 2")
title = "All"
plt.title(title)
plt.savefig(title + ".png")

plt.show()

我不明白偏移量怎么可能是正确的。大多数情况下,它会乘以负值,所以我认为结果应该是正值?@Antys-offset意味着图形上的0记号被移位,等于-2071200(与-2.0712e6相同)。当y轴上指定给记号的值添加到偏移量时,它们给出的值与我添加的图形上的值相同(例如,-2071200+(-10)=-2071210)。您的问题是,您试图用分配给记号的值乘以偏移量,而不是将它们相加。一个重要的补充:如果您的一个轴是日期,则上述调用
ax.ticklabel\u format(useOffset=False)
将失败。在这种情况下,您需要通过
ax.ticklab_格式(axis=“y”,useOffset=False)
明确指定不是日期轴的轴(这里,x是日期轴)。原因是axis参数默认设置为“两者”,否则,
ax.ticklabel\u format
将抛出“此方法仅适用于ScalarFormatter”。