I have a pandas dataframe that looks like this:
    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? Do I have to rearrange my data in some way?

(source: mwaskom at stanford.edu)
We can make multiple columns of the barplot by using the seaborn function group bar. The groupby() method in Pandas is used to divide data into groups depending on specified criteria. In the following example script, we have included the matplotlib library and seaborn module for plotting multiple columns using barplot.
A stacked Bar plot is a kind of bar graph in which each bar is visually divided into sub bars to represent multiple column data at once. To plot the Stacked Bar plot we need to specify stacked=True in the plot method. We can also pass the list of colors as we needed to color each sub bar in a bar.
To create two graphs, we can use nrows=1, ncols=2 with figure size (7, 7). Create a data frame with keys, col1 and col2, using Pandas. Use countplot() to show the counts of observations in each categorical bin using bars. Adjust the padding between and around the subplots.
Yes you need to reshape the 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):
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. 
sns.catplot(x='class', y='survival rate', hue='sex', data=df, kind='bar') 
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With