首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Seaborn :如何将图例添加到seaborn barplot

Seaborn :如何将图例添加到seaborn barplot
EN

Stack Overflow用户
提问于 2020-12-13 11:38:14
回答 2查看 1K关注 0票数 2

我正在尝试向我的seaborn条形图添加图例。我已经尝试添加色调,但它弹出错误,说IndexingError: Unalignable boolean Series provided as indexer (index of the boolean Series and of the indexed object do not match).,所以我尝试了其他解决方案,给它的标签参数。下面是代码

代码语言:javascript
复制
plt.figure(figsize=[15,12])                     
sns.barplot(x=customer['gender'].unique(),y=customer.groupby(['gender'])['gender'].count(),
            data=customer,label=customer['gender'].unique())
plt.legend(loc="upper left")

这就是结果,这个结果是错误的。它应该根据酒吧里的颜色来标注男女。雌雄应该用不同的颜色分开。我已经尝试过关注thisthisthis,但这些都不适合我。我怎么发动汽车呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-12-13 15:06:01

通过为图例设置handles参数,您可以在现有代码中使用以下一行代码:

代码语言:javascript
复制
patches = [matplotlib.patches.Patch(color=sns.color_palette()[i], label=t) for i,t in enumerate(t.get_text() for t in plot.get_xticklabels())]

像这样使用:

代码语言:javascript
复制
plt.legend(handles=patches, loc="upper left") 

完整的脚本:

代码语言:javascript
复制
import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib
import pandas as pd
import numpy as np
import random

#generate random test data
genders = ['Male', 'Female']
sampling = random.choices(genders, k=100)
customer = pd.DataFrame({'gender': sampling})

#you can change the palette and it will still work
sns.set_palette("Accent")
                  
plot = sns.barplot(x=customer['gender'].unique(),y=customer.groupby(['gender'])['gender'].count(),
            data=customer) 

patches = [matplotlib.patches.Patch(color=sns.color_palette()[i], label=t) for i,t in enumerate(t.get_text() for t in plot.get_xticklabels())]
plt.legend(handles=patches, loc="upper left")    
票数 2
EN

Stack Overflow用户

发布于 2020-12-13 14:54:15

我认为你把groupby的事情复杂化了。您可以使用sns.countplot:

代码语言:javascript
复制
customer = pd.DataFrame({'gender':np.random.choice(["Male","Female"],100)})
sns.countplot(x='gender',hue='gender',data=customer,dodge=False)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65272126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档