【问题标题】:Matplotlib scatter plot x-axis value is messed upMatplotlib 散点图 x 轴值搞砸了
【发布时间】:2025-12-21 04:40:06
【问题描述】:

我的以下演示代码正在生成一个带有错误 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 轴似乎以某种与代码中的数据不匹配的方式缩放。谁能解释我做错了什么?

【问题讨论】:

  • 看起来是一种非常聪明的方式来编写轴标签,这样您就可以看到点 - 正如轴上所说,值都是所写内容的“+1”!
  • 哦,这对我来说很有意义。我没有看到角落里的 +1。

标签: python matplotlib plot data-visualization visualization


【解决方案1】:

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

ax.ticklabel_format(useOffset = False)

【讨论】:

    【解决方案2】:

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

    matplotlib.pyplot.xticks(ticks, labels, **kwargs)
    

    另见

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

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

    【讨论】:

    • 谢谢,第一种方法似乎显示了未缩放的值,这正是我想要的。一旦 * 允许我接受你的回答,我就会接受。