将值添加到条形图中具有不同值的条形

时间:2018-09-28 19:39:02

标签: python pandas matplotlib

我正在使用groupby创建一个barplot,以显示某个个人在2012日历年的成功率。这很好。 X轴= S_L,Y轴​​为成功率%。我的数据集中有一列表示成功(1或0)。

ax=df[df['CY']==2012].groupby('S_L').success.mean().sort_values(ascending=False).plot(kind='bar',stacked=False)

我不想显示每个条形图的值,而是要显示均值后面的计算,即每个组的总数和成功(这是一个标志)= 1(即分子)的计数。例如:如果条形图显示90%,这是由9(分子)成功// 10(给定S_L组的总计数)计算得出的,那么我想显示该条形图的n = 9和n = 10。

我查看了这些帖子Add labels to barplots,当我显示这些条的值时,它可以工作。 但是,我不知道如何为计算添加值。由于我也按降序对值进行排序,因此我不知道该怎么做。请帮忙。

我的代码:

import pandas as pd
from os import path

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
fname=path.expanduser(r'Test file.xlsx')
df=pd.read_excel(io=fname,sheet_name='Sheet1')
ax=df.groupby('S_L').success.mean().sort_values(ascending=False).plot(kind='bar',stacked=False)
vals = ax.get_yticks()
ax.set_ylabel('Success Rate')
ax.set_yticklabels(['{:,.2%}'.format(x) for x in vals])

下面是数据集图像 enter image description here

0 个答案:

没有答案