I have a dataframe like below. Using Python seeborn, how can I create a bar plot with day_of_week as x axis and for each day, have 2 bars to show both cr and clicks?
df=pd.DataFrame({u'clicks': {0: 19462,
1: 11474,2: 32522,3: 16031,4: 12828,5: 7856,6: 11395},
u'cr': {0: 0.0426,1: 0.0595,2: 0.0454,3: 0.0462,4: 0.0408,5: 0.0375,6: 0.0423},
u'day_of_week': {0: u'Friday',1: u'Monday',2: u'Saturday',3: u'Sunday',
4: u'Thursday',5: u'Tuesday',6: u'Wednesday'}})
Out[14]:
clicks cr day_of_week
0 19462 0.0426 Friday
1 11474 0.0595 Monday
2 32522 0.0454 Saturday
3 16031 0.0462 Sunday
4 12828 0.0408 Thursday
5 7856 0.0375 Tuesday
6 11395 0.0423 Wednesday
You can use matplotlib with Seaborn styles:
sns.set()
df=pd.DataFrame({u'clicks': {0: 19462,
1: 11474,2: 32522,3: 16031,4: 12828,5: 7856,6: 11395},
u'cr': {0: 0.0426,1: 0.0595,2: 0.0454,3: 0.0462,4: 0.0408,5: 0.0375,6: 0.0423},
u'day_of_week': {0: u'Friday',1: u'Monday',2: u'Saturday',3: u'Sunday',
4: u'Thursday',5: u'Tuesday',6: u'Wednesday'}})
df = df.set_index('day_of_week')
fig = plt.figure(figsize=(7,7)) # Create matplotlib figure
ax = fig.add_subplot(111) # Create matplotlib axes
ax2 = ax.twinx() # Create another axes that shares the same x-axis as a
width = .3
df.clicks.plot(kind='bar',color='green',ax=ax,width=width, position=0)
df.cr.plot(kind='bar',color='blue', ax=ax2,width = width,position=1)
ax.grid(None, axis=1)
ax2.grid(None)
ax.set_ylabel('clicks')
ax2.set_ylabel('c r')
ax.set_xlim(-1,7)
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