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

如何调整Matplotlib多行图例标签的图例标记垂直位置?

解决Matplotlib多行图例标签与标记第一行对齐的问题

要让多行图例标签的标记仅与第一行文本居中对齐,可以通过调整图例文本的垂直对齐方式和手柄(标记)与文本的间距实现,具体步骤如下:

  1. 正常绘制图形并创建图例,获取图例对象
  2. 将所有图例文本的垂直对齐方式设为top,让文本以顶部为基准对齐
  3. 调整手柄与文本的间距,通过负数的handletextpad值让标记上移,与第一行文本居中对齐

完整代码示例

import matplotlib.pyplot as plt

x  = [0,1,2,3,4,5,6,7,8,9,10]
y1 = [2,2.4,3.1,3.7,4.5,5.3,5.4,6.1,6.2,6.4,7.3]
y2 = [1.5,2,3,4.6,5.1,5.4,6.3,6.5,5.2,5.5,4.2]

plt.plot(x,y1,label='single row label')
plt.plot(x,y2,label='multiple\nrow\nlabel')
# 获取图例对象
leg = plt.legend()

# 设置文本垂直对齐为顶部
for text in leg.get_texts():
    text.set_verticalalignment('top')

# 调整手柄与文本的间距,负数让标记上移,数值可根据实际显示微调
leg.set_handletextpad(-2.5)

plt.show()

说明

  • set_verticalalignment('top'):让多行文本的顶部与标记的垂直中线对齐
  • set_handletextpad(-2.5):该参数控制标记与文本的水平间距,负数会让标记向文本方向移动,配合垂直对齐设置,就能实现标记与第一行文本居中的效果。你可以根据字体大小、标签行数微调这个数值,直到达到理想显示效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 23:20:05