python - 箱线图显示数据数量?
问题描述
df = pd.DataFrame(np.random.randn(11, 1),
columns=['Col1'])
df['X'] = pd.Series(['A', 'A', 'A', 'A', 'A',
'B', 'B', 'B', 'B', 'B','B'])
boxplot = df.boxplot(by='X')
我想在图中boxplot
显示“A”和“B”的数量(“A”为 5,“b”为 6)。我应该怎么办 ?
解决方案
一种方法:
box_plot = sns.boxplot(x = 'X', y = 'Col1' , data = df)
medians = df.groupby(['X'])['Col1'].median()
counts = (df.groupby(['X'])['Col1'].count())
vertical_offset = df['Col1'].median() * 0.05 # offset from median for display
for xtick in box_plot.get_xticks():
box_plot.text(xtick,medians[xtick] + vertical_offset,counts[xtick],
horizontalalignment='center',size='medium',color='w',weight='bold')