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

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')

超出X轴范围的点显示在绘图区域外

解决方法

  • 使用面向对象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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 16:37:12