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

如何让Matplotlib的Figure文本固定显示在左上角不受轴标签影响?

解决Matplotlib中固定左上角文本位置的问题

问题核心是默认文本定位依赖坐标轴或图窗的布局元素,当标题、多行轴标签改变布局时,文本位置会被挤占。要让文本固定在图窗左上角,不受其他元素影响,直接用图窗坐标系定位即可:

  • 用fig.text()替代plt.text(),指定transform=fig.transFigure(基于图窗整体的坐标系,左下角是(0,0),右上角是(1,1))
    示例代码:

    import matplotlib.pyplot as plt
    
    fig, ax = plt.subplots()
    # 添加多行y轴标签和标题
    ax.set_ylabel("多行\ny轴\n标签")
    ax.set_title("这是一个较长的标题")
    # 固定在左上角,和边框留小间距
    fig.text(0.01, 0.99, "ABCD", ha='left', va='top', transform=fig.transFigure)
    plt.show()
    

    这里ha='left'是左对齐,va='top'是顶部对齐,0.01和0.99是相对于图窗的位置,保证文本始终在左上角,不会被标题、轴标签覆盖。

  • 若文本被图窗边框裁切,可调整位置参数或预留布局空间:
    要么微调fig.text()的位置值(比如x设为0.02,y设为0.98),要么用fig.subplots_adjust()留出边距:

    fig.subplots_adjust(left=0.15, top=0.9)
    
  • 要完全贴紧左上角边框,直接把位置设为(0,1),并关闭裁切:

    fig.text(0, 1, "ABCD", ha='left', va='top', transform=fig.transFigure, clip_on=False)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 12:02:41