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

如何在Matplotlib中设置Y轴刻度仅显示实际数据的数值范围

动态设置Matplotlib散点图Y轴刻度为数据实际区间的真实数值

核心解决办法

不用手动硬编码Y轴区间,直接从你的数据里提取最小和最大值,再基于这两个值生成对应间隔的刻度,这样不管数据区间怎么变,都能自动适配。

具体步骤

  • 从读取的多组数据中,提取Y轴数据的最小值y_min和最大值y_max
  • 用numpy.arange根据这两个值生成间隔为10的刻度(要改间隔的话直接调参数就行)
  • 用Matplotlib的plt.yticks()设置生成的刻度,再用plt.ylim()微调轴范围,避免数据点贴到轴边缘

示例代码

import numpy as np
import matplotlib.pyplot as plt

# 替换成你的实际文件读取逻辑,这里用模拟数据演示
y_data = np.random.uniform(low=15264, high=15808, size=100)
x_data = np.arange(len(y_data))

# 获取Y轴数据的极值
y_min = np.min(y_data)
y_max = np.max(y_data)

# 生成间隔为10的刻度:如果需要刻度是10的整数倍,就先对极值取整
y_min_rounded = np.floor(y_min / 10) * 10
y_max_rounded = np.ceil(y_max / 10) * 10
y_ticks = np.arange(y_min_rounded, y_max_rounded + 10, 10)

# 如果不需要取整,直接用原始极值生成刻度:
# y_ticks = np.arange(y_min, y_max + 10, 10)

# 绘制散点图
plt.scatter(x_data, y_data)

# 设置Y轴刻度和范围
plt.yticks(y_ticks)
plt.ylim(y_min_rounded - 5, y_max_rounded + 5)  # 稍微扩展范围,让点不贴轴

plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.title('自动适配数据区间的散点图')
plt.show()

注意点

  • 自动适配:用np.min()和np.max()动态拿数据范围,后续数据区间变了也不用改代码
  • 刻度取整:如果希望刻度是规整的10的倍数,就用取整逻辑;如果要完全贴合数据极值,直接用原始数值生成刻度
  • 视觉优化:微调ylim的上下限,能让图表看起来更舒服,不会有数据点卡在轴上的情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 02:55:41