pandas 连接并排箱形图中的分位数

p8h8hvxi  于 2023-01-24  发布在  其他
关注(0)|答案(1)|浏览(103)

我有一个这样的并排箱形图

import pandas as pd
import numpy as np
group = np.array([  np.random.binomial(2,0.4)   for _ in range(100)])
data = [  np.random.uniform(0,5)   for _ in range(len(group))]
df = pd.DataFrame({'data': data, 'group': group} )
df.boxplot(by='group', vert=False)

我试图将这些箱线图的25、50和75分位数连接在一起,我期望的输出如下所示:

我想知道是否有一种方法可以在panda/matplotlib中实现这一点

qmb5sa22

qmb5sa221#

您可以用途:

ax = df.boxplot(by='group', vert=False)

quantiles = df.groupby('group')['data'].quantile([0.25, 0.5, 0.75]).unstack()
for col in quantiles:
    ax.plot(quantiles[col], range(1, len(quantiles)+1), label=col)
plt.legend()

如果你有一个垂直箱形图,这会更容易一些:

ax = df.boxplot(by='group', vert=True)

quantiles = df.groupby('group')['data'].quantile([0.25, 0.5, 0.75]).unstack()
quantiles.set_axis(range(1, len(quantiles)+1)).plot(ax=ax)

相关问题