I have a problem. I would like to print a grouped bar plot (with seaborn or matplotlib). When I run the below snippet code I got
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
d = {'type': ['House', 'Boat', 'Bus', 'Bus', 'Boat'], 'room': ['private', 'public', 'public', 'private', 'nothing']}
df = pd.DataFrame(data=d)
print(df)
[OUT]
type room
0 House private
1 Boat public
2 Bus public
3 Bus private
4 Boat nothing
g = sns.catplot(
data=df, kind="bar",
x='type', y=df.groupby(['type']).count(), hue="room",
palette="dark", alpha=.6, height=6
)
g.despine(left=True)
g.set_axis_labels("", "Counts")
g.legend.set_title("")
[OUT]
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
What I want
CodePudding user response:
Looks like this would do the trick:
pd.crosstab(df['type'],df['room']).plot.bar(stacked=True)