如何修改Seaborn折线图图例中样式变量的标签文本?
修改Seaborn折线图图例的特定标签
有两种常用方法可以实现你的需求,可根据是否允许修改原始数据选择:
方法一:提前修改DataFrame中的标签(推荐)
图例文本直接对应数据列的取值,先替换gsector列中的目标值再绘图即可:
# 替换数据中的标签值 weekly_port_ret['gsector'] = weekly_port_ret['gsector'].replace({20.0: 'Industrial', 45.0: 'IT'}) # 绘制折线图 ax = sns.lineplot(data=weekly_port_ret, x='week', y='R', hue='high_leverage', style='gsector') ax.set(title='Weekly Portfolio Returns - Daily Rebalancing', xlabel='Week in 2020', ylabel='Weekly Return') plt.show()
方法二:直接修改已生成的图例文本
如果不想改动原始数据,可获取图例对象后替换指定文本:
ax = sns.lineplot(data=weekly_port_ret, x='week', y='R', hue='high_leverage', style='gsector') ax.set(title='Weekly Portfolio Returns - Daily Rebalancing', xlabel='Week in 2020', ylabel='Weekly Return') # 获取图例的手柄和标签 handles, labels = ax.get_legend_handles_labels() # 遍历标签并替换目标内容 updated_labels = [] for lbl in labels: if lbl == '20.0': updated_labels.append('Industrial') elif lbl == '45.0': updated_labels.append('IT') else: updated_labels.append(lbl) # 更新图例 ax.legend(handles=handles, labels=updated_labels) plt.show()
内容的提问来源于stack exchange,提问作者Tim DiPalo
相关产品推荐
相关产品推荐

