You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matplotlib散点图x轴数值显示异常与输入数据不匹配如何解决?

问题原因

这是matplotlib的自动轴标注机制导致的:当所有x轴数值的波动范围极小时(本次所有x值的最大差值不到0.00013),matplotlib默认启用偏移显示模式:

  • 轴面显示的刻度为原始数值减去基准偏移量后的结果
  • 基准偏移量(本次为1)会标注在x轴的最右上角,很容易被忽略,因此会产生x轴数值和输入不符的错觉。

解决方案

可根据需求选择任意一种方案修复:

方案1:关闭x轴偏移显示

在绘图代码中新增关闭偏移的配置即可,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])
# 新增配置:关闭x轴偏移显示
ax.ticklabel_format(axis='x', useOffset=False)
plt.savefig('demo.png')

方案2:手动指定x轴显示范围

如果不需要展示极小的精度差异,可以手动设置x轴范围,让刻度显示更符合直观:

# 在savefig前添加如下代码即可
ax.set_xlim(0.9998, 1.0002)

额外优化建议

你当前的代码逐点遍历绘制散点是冗余的,直接将x、y数组整体传入scatter方法即可完成所有点的绘制,代码更简洁性能也更好:

# 替代原有的for循环逐点绘制
ax.scatter(x, y)

内容的提问来源于stack exchange,提问作者Song Tùng

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 18:27:01