Pandas Dataframe 使用分类数据创建 Seaborn 水平条形图

Pandas Dataframe Create Seaborn Horizontal Barplot with categorical data

我目前正在使用这样的数据框:

我想要的是显示 Victory 列的总数,其中值是按 AGE_GROUP 分组的 S与 GENDER 不同,类似于以下水平条形图:

至此我得到了如下图表:

按照以下步骤操作:

victory_df = main_df[main_df["VICTORY"] == "S"]
victory_count = victory_df["AGE_GROUP"].value_counts()
sns.set(style="darkgrid")
sns.barplot(victory_count.index, victory_count.values, alpha=0.9)

我应该使用哪种策略来区分 value_count 的性别并将其包含在图表中?

这显然有助于提供原始数据而不是图像。想出自己的 data.Not 当然理解你的问题,但我在下面尝试。

数据

df=pd.DataFrame.from_dict({'VICTORY':['S', 'S', 'N', 'N', 'N', 'S', 'N', 'S', 'N', 'S', 'N', 'S', 'S'],'AGE':[5., 88., 12., 19., 30., 43., 77., 50., 78., 34., 45.,  9., 67.],'AGE_GROUP':['0-13', '65+', '0-13', '18-35', '18-35', '36-64', '65+', '36-64','65+', '18-35', '36-64', '0-13', '65+'],'GENDER':['M', 'M', 'F', 'M', 'F', 'F', 'M', 'F', 'F', 'F', 'M', 'M', 'F']})

密谋。我分组 AGE_GROUP,value count GENDER, unstack and plot a stacked 水平条形图。 Seaborn 是建立在 matplotlib 之上的,当在 seaborn 中绘图不像堆叠的单杠那样简单时,我又回到了 matplotlib。希望大家不要见怪。

   df[df['VICTORY']=='S'].groupby('AGE_GROUP')['GENDER'].apply(lambda x: x.value_counts()).unstack().plot(kind='barh', stacked=True)

plt.xlabel('Count')
plt.title('xxxx')

输出