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

如何重新缩放限制X轴后的Matplotlib图表Y轴范围

Matplotlib X轴限制后Y轴未适配的问题解答

这不是Bug。Matplotlib默认逻辑是先基于全部输入数据计算坐标轴的初始范围,之后再应用你手动设置的X轴限制,所以Y轴会保留全量数据对应的范围(本例中是0到100),不会自动适配X轴裁剪后的区域。

无需截断NumPy数组的简便解决方法有以下几种:

方法1:设置X轴范围后触发Y轴自动缩放

在设置xlim之后,调用autoscale(axis='y'),让Matplotlib基于当前可见的X轴区域重新计算Y轴范围:

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-10,10,100)
y = x**2

fig, ax = plt.subplots()
ax.plot(x,y)
ax.set_xlim(-2, 2)
ax.autoscale(axis='y')  # 仅对Y轴执行自动缩放
plt.show()

方法2:先设置X轴范围再绘图

如果先定义好X轴的显示范围,再绘制曲线,Matplotlib会直接基于这个X范围筛选数据并计算对应的Y轴范围:

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-10,10,100)
y = x**2

fig, ax = plt.subplots()
ax.set_xlim(-2, 2)  # 先设定X轴显示范围
ax.plot(x,y)
plt.show()

方法3:手动更新数据范围与视图

如果需要更精细的控制,可以先调用relim()重新计算当前可见区域的数据范围,再用autoscale_view()更新视图:

ax.set_xlim(-2, 2)
ax.relim()  # 重新计算数据边界(仅考虑当前X轴限制内的数据)
ax.autoscale_view(scalex=False, scaley=True)  # 固定X轴,自动缩放Y轴

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 13:52:41