用一个例子展开说明:
legend_font = {
'family': 'Arial', # 字体
'style': 'normal',
'size': font_size, # 字号
'weight': "normal", # 是否加粗,不加粗
}
ax.legend(
bbox_to_anchor=(0.5, 0.95),
loc='lower center', # 图例的底部中央位置在图像上部居中
frameon=False, # 不显示图例框线
prop=legend_font
)
其中字体设置和框线设置比较简单,无需赘述。图例位置的设置相对较难,下边加以说明:
# 图例的底部中央位置在图像上部居
bbox_to_anchor=(0.5, 0.95)
loc='lower center'
这两句合起来的作用是让图例的底部中央(lower center)位置居于axes
的(0.5, 0.95)位置,其中,第一个参数0.5表示x方向上比例为0.5的位置,第二个参数0.95表示y方向上比例为0.95的位置。整体效果为图例在axes
顶部居中,通过调整bbox_to_anchor
中的第二个参数,可以使图例在垂直方向上移动。
也可以学习一下matplotlib官方示例Simple Legend01。
更多内容参见matplotlib官方文档Legend guide。
关于plt.legend()中bbox_to_anchor的理解