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

Pyplot绘图时所有数据点堆叠在轴同一位置的原因排查

问题原因及解决办法

核心原因

你设置了ax.set_aspect(1),强制让x轴和y轴的单位长度视觉上相等。但你的数据跨度差异极大:

  • x轴(n_vec)的取值范围是100到100000,跨度达99900
  • y轴(te_scores)的取值范围仅0.85到0.87,跨度只有0.02

在5x5的画布上,y轴的微小跨度会被压缩成几乎一条水平线,所有散点自然看起来堆叠在一起。

解决办法

直接移除ax.set_aspect(1)这行代码,让matplotlib自动适配坐标轴的纵横比:

plt.figure(figsize=(5,5))
ax = plt.gca()
ax.set_ylim([0.85, 0.87])
ax.scatter(n_vec, te_scores, color=(0,0,1,0.3), s=100)
# ax.scatter(n, tr_scores, color=(1,0,0,0.3), s=100)
# 移除ax.set_aspect(1)
plt.show()

如果确实需要自定义纵横比,不要用固定的1,改用自适应模式:

ax.set_aspect('auto')

或者根据数据跨度手动计算合适的比例,让x轴和y轴的跨度视觉上匹配:

x_range = max(n_vec) - min(n_vec)
y_range = 0.87 - 0.85
ax.set_aspect(x_range / y_range)

内容的提问来源于stack exchange,提问作者Rudy Brown

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 03:12:36