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

如何为matplotlib axvspan绘制的彩色区间添加对应自定义图例

给axvspan垂直高亮区间添加图例的实现方法

直接在调用ax.axvspan()绘制每个高亮区间时传入label参数指定图例文本,最后调用plt.legend()即可自动生成匹配的图例,无需额外自定义图例元素。

修改后的可运行完整代码:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame(np.random.randint(100, size=25), columns=['max'])
df['day'] = pd.date_range('2021-1-1', periods=25, freq='SMS')#freq='W')
df['date'] = df['day'].dt.strftime('%Y-%m')

plt.figure(figsize=(10,6))
ax = sns.lineplot(data=df, x = df['date'], y='max')
# 为每个高亮区间绑定对应图例标签
ax.axvspan('2021-03', '2021-06', color='g', alpha=0.2, label='spring')
ax.axvspan('2021-06', '2021-09', color='b', alpha=0.3, label='summer')
ax.axvspan('2021-09', '2021-12', color='m', alpha=0.5, label='winter')
plt.xticks(rotation=45)
# 渲染显示图例
plt.legend()
plt.show()

补充说明

  • 生成的图例色块会自动继承对应高亮区间的颜色、透明度属性,和图中高亮区域视觉效果完全统一
  • 如果需要调整图例位置,可以给plt.legend()传入loc参数,例如plt.legend(loc='upper left')即可将图例放置在左上角。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 13:24:20