如何为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
相关产品推荐
相关产品推荐

