Matplotlib 散点图 x 轴值被搞乱了

Matplotlib scatter plot x-axis value is messed up

我的以下演示代码生成了一个 x 轴值错误的图。

import matplotlib.pyplot as plt

x = [1.0, 1.0, 1.0, 1.0, 1.0, 0.9999390392587174, 1.0000609607412827, 1.0000609607412827]
y = [132, 136, 160, 192, 132, 136, 160, 192]

fig, ax = plt.subplots()
for i in range(len(x)):
    ax.scatter(x[i], y[i])

plt.savefig('demo.png')

这是它生成的图形。在图片中,x 轴似乎以某种方式缩放,与代码中的数据不匹配。谁能解释一下我做错了什么?

它已将它们正确缩放到 x 值的范围内。 奇怪的是它是如何标记的。 你可以用

来控制它
matplotlib.pyplot.xticks(ticks, labels, **kwargs)

另见

x_formatter = matplotlib.ticker.ScalarFormatter(useOffset=False)
ax.xaxis.set_major_formatter(x_formatter)

这是关闭“偏移”值(在本例中为 +1)的选项。

您的 x 轴值非常接近,因此 matplotlib 会自动向 x 轴添加偏移量(注意图右下方的 +1)。
您可以简单地通过以下方式阻止它:

ax.ticklabel_format(useOffset = False)