简体   繁体   English

Seaborn多个barplots

[英]Seaborn multiple barplots

I have a pandas dataframe that looks like this: 我有一个像这样的pandas数据框:

    class       men       woman   children
0   first   0.91468    0.667971   0.660562
1   second  0.30012    0.329380   0.882608
2   third   0.11899    0.189747   0.121259

How would I create a plot using seaborn that looks like this? 如何使用看起来像这样的seaborn创建一个情节? Do I have to rearrange my data in some way? 我是否必须以某种方式重新安排我的数据?

Yes you need to reshape the DataFrame: 是的,您需要重塑DataFrame:

df = pd.melt(df, id_vars="class", var_name="sex", value_name="survival rate")
df
Out: 
    class       sex  survival rate
0   first       men       0.914680
1  second       men       0.300120
2   third       men       0.118990
3   first     woman       0.667971
4  second     woman       0.329380
5   third     woman       0.189747
6   first  children       0.660562
7  second  children       0.882608
8   third  children       0.121259

Now, you can use factorplot (v0.8.1 or earlier): 现在,您可以使用factorplot(v0.8.1或更早版本):

sns.factorplot(x='class', y='survival rate', hue='sex', data=df, kind='bar')

在此输入图像描述

For versions 0.9.0 or later, as Matthew noted in the comments , you need to use the renamed version, catplot . 对于版本0.9.0或更高版本,正如Matthew在评论中指出的那样,您需要使用重命名的版本catplot

sns.catplot(x='class', y='survival rate', hue='sex', data=df, kind='bar')

I know my answer came very late but I hope someone benefit from it. 我知道我的答案来得很晚但我希望有人从中受益。

to solve the above I used the below code after re-arranging the data of course: 为了解决上述问题,我在重新安排数据后使用了以下代码:

Data: 数据:

d = {'class': ['first', 'second', 'third', 'first', 'second', 'third', 'first', 'second', 'third'], 'sex': ['men', 'men', 'men', 'woman', 'woman', 'woman', 'children', 'children', 'children'], 'survival_rate':[0.914680, 0.300120, 0.118990, 0.667971, 0.329380, 0.189747, 0.660562, 0.882608, 0.121259]} 

df = pd.DataFrame(data=d)

在此输入图像描述

sns.factorplot("sex", "survival_rate", col="class", data=df, kind="bar")

在此输入图像描述

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM