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

如何在Matplotlib中调整图例标签位置实现短标签并列布局

实现自定义图例布局的解决方案

你的需求完全可以实现,下面提供两种可行的方法来调整图例布局,满足红色标签与蓝色标签并排、黑色长标签不换行的要求:

方法一:创建两个独立图例(推荐,布局更灵活)

通过拆分图例为两部分,分别控制短标签和长标签的位置与显示方式:

import numpy as np
import matplotlib.pyplot as plt

a = np.linspace(0,50,20)
b = np.exp(-0.1*a)*70+np.random.random(20)*10
c = np.exp(-0.1*a)*70+np.random.random(20)*10

# 绘制线条并保存线条对象
line_blue, = plt.plot(a, b, 'b.-', lw=3, ms=10, label='short label')
line_red, = plt.plot(a, c, 'r.-', lw=3, ms=10, label='short label')
line_black, = plt.plot([a[3],a[3]], [-1,100], 'k--', lw=2, label='much longer label, I want to span two columns')

plt.ylim([0, 80])
plt.xlim([0, 50])

# 第一个图例:放置蓝、红标签,设置为2列并排
legend_short = plt.legend([line_blue, line_red], 
                          [line_blue.get_label(), line_red.get_label()],
                          loc='upper right', ncol=2, frameon=False)
plt.gca().add_artist(legend_short)

# 第二个图例:放置黑色长标签,禁用自动换行
plt.legend([line_black], [line_black.get_label()],
           loc='lower right',
           textprops={'wrap': False})

plt.show()

代码说明:

  • 拆分图例为两部分,避免长标签干扰短标签的并排布局
  • ncol=2让蓝、红标签在同一行显示
  • textprops={'wrap': False}强制黑色长标签保持单行不换行
  • 通过loc参数分别设置两个图例的位置,避免重叠

方法二:调整单个图例的列布局

通过设置图例的列数和文本属性,让短标签并排,长标签自动跨列:

import numpy as np
import matplotlib.pyplot as plt

a = np.linspace(0,50,20)
b = np.exp(-0.1*a)*70+np.random.random(20)*10
c = np.exp(-0.1*a)*70+np.random.random(20)*10

plt.plot(a,b,'b.-',lw=3,ms=10,label='short label')
plt.plot(a,c,'r.-',lw=3,ms=10,label='short label')
plt.plot([a[3],a[3]],[-1,100],'k--',lw=2,label='much longer label, I want to span two columns')

plt.ylim([0,80])
plt.xlim([0,50])

# 设置图例为2列,禁用文本换行,调整间距优化布局
plt.legend(loc='best', ncol=2,
           textprops={'wrap': False},
           columnspacing=1.2,
           handletextpad=0.6)

plt.show()

代码说明:

  • ncol=2让前两个短标签在同一行显示,长标签自动占据两行的宽度
  • textprops={'wrap': False}防止长标签被强制换行
  • 调整columnspacing和handletextpad参数优化标签与图标之间的间距

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 13:27:19