首页 > 解决方案 > 箱线图显示数据数量?

问题描述

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)。我应该怎么办 ?

标签: pythonpython-3.xpandasmatplotlib

解决方案


一种方法:

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')

在此处输入图像描述


推荐阅读