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

matplotlib 3.4.2版本plt.axes的position参数设置坐标轴位置异常问题

问题根因

该异常是matplotlib 3.3及以上版本的默认配置变更导致的:从3.3版本开始,部分渠道安装的matplotlib会默认开启constrained_layout(约束布局)功能,该功能会在绘图渲染阶段自动调整子图位置避免标签、刻度被裁切,会直接覆盖你创建plt.axes()时传入的position参数。
Google Colab默认预装的matplotlib版本普遍低于3.3,未开启该默认配置,因此相同代码运行效果符合预期。

可行解决方案

  • 方案1:创建画布时显式关闭自动布局,无需修改后续轴域相关代码
    将代码中的plt.figure()替换为:
    plt.figure(constrained_layout=False, tight_layout=False)
    
  • 方案2:全局修改运行配置,适配所有本地运行的绘图脚本
    在导入matplotlib库后添加全局参数配置:
    import matplotlib.pyplot as plt
    plt.rcParams.update({
        "figure.constrained_layout.use": False,
        "figure.autolayout": False
    })
    
  • 方案3:保留自动布局功能,仅指定特定轴域不被布局管理器调整
    在创建对应轴域后添加如下配置:
    ax1.set_in_layout(False)
    ax2.set_in_layout(False)
    

你当前使用的绘图完成后重新调用set_position的方法也可正常使用,属于兼容所有matplotlib版本的通用写法。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 12:15:02