Seaborn:如何为每组创建2个变量的条形图?

2024-10-01 13:38:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个像下面这样的数据帧。使用Python seeborn,我如何创建一个以每周的day_为x轴的条形图,并且对于每一天,有2个条形图来显示cr和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

Tags: of数据cr条形图weekmondaydaysunday
1条回答
网友
1楼 · 发布于 2024-10-01 13:38:19

可以将matplotlib与Seaborn样式一起使用:

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)

enter image description here

相关问题 更多 >