gpt4 book ai didi

python - 有没有一种使用 Python Matplotlib 在分组箱线图上显示样本大小的好方法

转载 作者:太空宇宙 更新时间:2023-11-03 13:16:14 24 4
gpt4 key购买 nike

我可以使用 groupby 获取尺寸信息并将文本添加到相应位置。但我忍不住想有更好的方法,因为这看起来真的很平凡,很多人都希望看到的东西......

为了说明,以下代码将生成分组箱线图

import pandas as pd
df = pd.DataFrame(rand(100, 1), columns=['value'])
df.ix[:23, 'class']='A'
df.ix[24:, 'class']='B'
df.boxplot(column='value', by='class')

boxplot我想要的是显示每个 A 类和 B 类的样本量,分别为 24 和 76。它可能显示为图例或框附近的某个地方,我都可以。

谢谢!

最佳答案

n 在类 ticklabels 中。我把它当作一个传说来试过,但我认为它并不那么清楚。 R 有更多的箱线图选项,包括使箱的宽度与样本大小成正比;不是 matplotlib 中的默认设置,但简单且看起来非常可读:

import pandas as pd
from numpy.random import rand, randint

df = pd.DataFrame(rand(100, 1), columns=['value'])

cut1 = randint(2,47)
cut2 = randint(52, 97)
df.ix[:cut1, 'class']='A'
df.ix[cut1+1:cut2, 'class']='B'
df.ix[cut2+1:, 'class'] = 'C'

dfg = df.groupby('class')

counts = [len(v) for k, v in dfg]
total = float(sum(counts))
cases = len(counts)

widths = [c/total for c in counts]

cax = df.boxplot(column='value', by='class', widths=widths)
cax.set_xticklabels(['%s\n$n$=%d'%(k, len(v)) for k, v in dfg])

enter image description here

关于python - 有没有一种使用 Python Matplotlib 在分组箱线图上显示样本大小的好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29286217/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com