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

使用Matplotlib绘图时legend图例遮挡图线该如何解决?

Matplotlib图例遮挡图线的解决方法

你遇到的遮挡问题主要是默认坐标轴范围过紧、图例位置设置不合理导致的,可通过以下几种方案解决:

  • 调整图例位置到图外
    用bbox_to_anchor参数将图例放在绘图区域外,完全避免遮挡,示例代码:
    # 放在图右侧外部
    plt.legend(bbox_to_anchor=(1.02, 1), loc='upper left', borderaxespad=0)
    
    也可根据需求调整参数放在图的上、下外部。
  • 扩大坐标轴范围预留空间
    手动调整y轴显示范围,给图例所在的右下角预留足够空白,在你的代码中加一行即可:
    # 原代码其他部分不变,在plt.legend()前加这行
    plt.ylim(bottom=-0.6)
    
    也可全局配置坐标轴自动留白比例,避免每张图手动调整:
    import matplotlib.pyplot as plt
    # 全局设置y轴上下自动预留15%的空白
    plt.rcParams['axes.ymargin'] = 0.15
    
  • 优化图例样式降低遮挡影响
    就算有轻微重叠也可以通过半透明、缩小字号等方式降低影响:
    plt.legend(
        loc='lower right',
        framealpha=0.7, # 图例背景半透明
        fontsize='small', # 缩小字号
        borderpad=0.3 # 缩小图例内边距
    )
    

你可以根据自己的绘图场景选择一种或多种方案组合使用,全局配置rc参数的方式适合多图批量处理的场景,不需要每张图单独调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 17:39:02