Spyder中plt.xlim异常?设置X轴范围后超出数据仍显示
Spyder中Matplotlib设置X轴范围后超出数据仍显示的问题
这是Spyder特有的问题(JupyterLab中以下代码运行正常)。设置plt.xlim(1.2,3.9)控制X轴范围后,超出该范围的数据点仍会显示在绘图区域外(效果见下图)。
示例代码:
import numpy as np from matplotlib import pyplot as plt A = np.linspace(1., 4., 6) B = np.linspace(1., 20, 6) fig, ax=plt.subplots(1,1, figsize = (6, 5)) a1 = ax.plot(A,B, 'o', color = 'k', markersize = 5) plt.xlim(1.2,3.9)
尝试给子图添加固定背景色,但无效果:
plt.subplots(1,1, figsize = (6, 5), facecolor='lightskyblue')

解决方法
使用面向对象API设置轴范围,替代全局
plt.xlim:ax.set_xlim(1.2, 3.9)这种方式在Spyder绘图环境中兼容性更好,能确保轴范围设置正确生效。
手动过滤数据后再绘制,彻底排除超出范围的点:
import numpy as np from matplotlib import pyplot as plt A = np.linspace(1., 4., 6) B = np.linspace(1., 20, 6) # 过滤X轴范围内的数据 mask = (A >= 1.2) & (A <= 3.9) filtered_A = A[mask] filtered_B = B[mask] fig, ax=plt.subplots(1,1, figsize = (6, 5)) ax.plot(filtered_A, filtered_B, 'o', color = 'k', markersize = 5) ax.set_xlim(1.2,3.9)切换Spyder绘图后端:
打开Spyder「偏好设置」→「IPython控制台」→「图形」,将后端从默认Automatic切换为Qt5Agg或TkAgg,部分后端对Matplotlib轴裁剪逻辑的支持更完善。
内容的提问来源于stack exchange,提问作者GiGi
相关产品推荐
相关产品推荐

