Grouped seaborn.barplot from a wide pandas.DataFrame

I think need melt if want use barplot:

data = df.melt('date', var_name="a", value_name="b")
print (data)
          date  a     b
0   2017-09-05  A    25
1   2017-09-06  A   261
2   2017-09-07  A   188
3   2017-09-08  A   200
4   2017-09-09  A   292
5   2017-09-05  B   261
6   2017-09-06  B  1519
7   2017-09-07  B  1545
8   2017-09-08  B  2110
9   2017-09-09  B  2391
10  2017-09-05  C    31
11  2017-09-06  C   151
12  2017-09-07  C   144
13  2017-09-08  C   232
14  2017-09-09  C   325

ax=sns.barplot(x='date', y='b', hue="a", data=data)
ax.set_xticklabels(ax.get_xticklabels(), rotation=90)

Pandas solution with DataFrame.plot.bar and set_index:

df.set_index('date').plot.bar()

Leave a Comment