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

如何调整matplotlib绘图图例位置,将其放在图表左侧空白区域

实现步骤&修改后代码

你原有代码首先有个小混淆点:plt.subplot(122)返回的是子图(Axes)对象,你命名为fig容易和画布(Figure)对象混淆,修正命名后调整图例参数即可实现需求:

# 将返回的子图对象命名为ax2,避免和画布对象混淆
ax2 = plt.subplot(122)
legend = []
plt.plot(k_array, NDCG, 'red')
legend.append("utility overall NDCG")
if data_loader.GSQb:
    plt.plot(k_array, GSQNDCG, 'orange')
    legend.append("GSQ NDCG")
if data_loader.BSQb:
    plt.plot(k_array, BSQNDCG, 'purple')
    legend.append("BSQ NDCG")
if data_loader.GWQb:
    plt.plot(k_array, GWQNDCG, 'black')
    legend.append("GWQ NDCG")
# 核心图例配置
# loc='upper right' 表示图例的右上角锚定到bbox_to_anchor指定的坐标点
# bbox_to_anchor第一个参数为x坐标,小于0即位于子图左侧外侧,可调整数值控制左右偏移
# 不需要改图例大小的话删除fontsize参数即可保留默认大小
ax2.legend(legend, loc='upper right', bbox_to_anchor=(-0.15, 1), fontsize='large')
# savefig必须加bbox_inches='tight'参数,自动调整画布边界避免图例被裁切
plt.savefig(metaCat + " best utility NDCGS", bbox_inches='tight')

参数调整说明

  • 图例位置不合适可修改bbox_to_anchor的数值:第一个数值越小(如-0.2)图例越靠左,越大(如-0.1)越靠右;第二个数值控制垂直位置,越大越靠上,越小越靠下
  • 不需要修改图例大小的话删除fontsize参数即可和原有图例大小完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 21:54:02