我使用seaborn的relplot绘制了一个线条图,并且我想要自定义我的图例标签。由于某些原因,当我这样做时,它创建了另一个图例,而没有删除旧的图例。如何摆脱最初的图例(标题为“Sex”的图例)?另外,如何将图例标题添加到我的新图例?
下面是我用来生成我的图的代码:
plt.figure(figsize=(12,10))
sns.relplot(x='Year',y = 'cancer/100k pop' , data = dataset_sex,hue="Sex", kind="line",ci=None)
title_string = "Trend of Cancer incidencies by Sex "
plt.xlabel('Years')
plt.title(title_string)
plt.legend(['Men','Women'])

发布于 2021-01-19 18:35:08
regplot是一个图形级函数,它返回一个FacetGrid。您可以通过g.legend.remove()删除其图例。
import matplotlib.pyplot as plt
import seaborn as sns
tips = sns.load_dataset("tips")
g = sns.relplot(data=tips, x="total_bill", y="tip", hue="day")
g.legend.remove()
plt.legend(['Jeudi', 'Vendredi', 'Samedi', 'Dimanche'])
plt.show()

这段代码已经使用seaborn 0.11进行了测试。你可能需要升级。要向图例添加标题,请执行以下操作:plt.legend([...], title='New title')。
请注意,plt.legend(...)将在最后一个(或唯一的)子图中创建图例。如果您更喜欢绘图旁边的图例级图例,要更改图例标签,可以在删除旧图例后调用g.add_legend(labels=[...], title='new title')。
PS:向sns.relplot()添加legend=False不会创建图例条目。因此,您需要重新创建图例标记及其标签,同时丢失所使用颜色的信息。
https://stackoverflow.com/questions/65784578
复制相似问题