Matplotlib散点图x轴数值错乱

3
以下是我的演示代码,它生成了一个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”多一个! - Sanjay Manohar
哦,现在我明白了。我没有看到角落里的+1。 - Songg Tùng
2个回答

1
它已将它们按照x值的范围正确缩放。奇怪的是它的标签方式。您可以通过以下方式进行控制:
matplotlib.pyplot.xticks(ticks, labels, **kwargs)

同时查看
x_formatter = matplotlib.ticker.ScalarFormatter(useOffset=False)
ax.xaxis.set_major_formatter(x_formatter)

这是关闭“偏移”值的选项(在此情况下为+1)。

谢谢,第一种方法似乎显示了未经缩放的值,这正是我想要的。一旦StackOverflow允许我接受您的答案,我会接受它。 - Songg Tùng

1
你的x轴数值非常接近,因此matplotlib会自动为x轴添加偏移量(请注意图表右下角的+1)。
你可以通过以下方式简单地防止这种情况:
ax.ticklabel_format(useOffset = False)

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接