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

如何将Matplotlib图例设置为左右分组并排的指定样式?

实现图例左右分组并排的解决方案

要实现左侧显示t系列标签、右侧显示a系列标签的分组图例,可以通过创建两个独立图例并分别定位的方式实现,具体修改步骤如下:

修改后的代码

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0,1, 100)
y = np.sin(x)

# 分别存储两组线条对象
t_lines = []
a_lines = []

for i in range(1,6):
    # 绘制t系列曲线,保存线条实例
    line_t, = plt.plot(x, i*y, label=f't= {i}')
    t_lines.append(line_t)
    
    # 绘制a系列散点,保存线条实例
    line_a, = plt.plot(x[::2], i*y[::2], marker='o', linestyle='None', markersize=2, label=f'a= {i}')
    a_lines.append(line_a)

# 创建左侧的t系列图例
leg1 = plt.legend(handles=t_lines, loc='upper left', bbox_to_anchor=(0, 1))
# 将第一个图例添加到当前坐标轴(避免被第二个图例覆盖)
plt.gca().add_artist(leg1)
# 创建右侧的a系列图例
plt.legend(handles=a_lines, loc='upper right', bbox_to_anchor=(1, 1))

plt.show()

关键说明

  • 用t_lines和a_lines两个列表分别存储两类图形的线条对象,确保能精准分组调用。
  • 第一个图例通过handles指定t_lines,用loc='upper left'和bbox_to_anchor=(0,1)固定在左上角;调用add_artist是为了保留这个图例,避免被后续创建的图例覆盖。
  • 第二个图例指定a_lines,用loc='upper right'和bbox_to_anchor=(1,1)固定在右上角,最终实现左右分组并排的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 06:10:49