[英]How to remove a legend part of a seaborn facetgrid
在 Matplotlib/seaborn 中,我使用relplot
命令创建了一个facetgrid
,其中用于row
参数的数据属性也用于样式属性。 这导致了一个由两部分组成的传说。 一部分是多余的,我想删除图例的这个多余部分。
这里的代码:
df = pd.read_csv('data.csv')
# Dataframe df has columns 'size', 'pricepersize', 'date' and 'series'
g = sns.relplot(x='size',
y='pricepersize',
data=df,
kind='line',
hue='date',
style='series',
row='series',
markers=True
)
plt.show()
这里是生成的图形网格(我要删除的图例部分标记为绿色):
如何摆脱图例中的“系列”部分,但将样式参数设置为与行参数相同的数据列?
我想最简单的方法是让 sns 创建图例(这是默认设置),将其删除并从原始图例的所需条目中重新生成一个新图例。
import seaborn as sns
tips = sns.load_dataset("tips")
fg = sns.relplot(data=tips, x="total_bill", y="tip", hue="day", row="time", kind='line', style='time')
给
然后使用
fg.legend.remove()
fg.fig.legend(handles=fg.legend.legendHandles[:5], loc=7)
终于得到
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.