是否有一种使用Python Matplotlib在分组箱图上显示样本大小的好
发布时间:2020-12-20 11:41:47 所属栏目:Python 来源:网络整理
导读:我可以使用groupby获取大小信息并将文本添加到相应的位置.但我不禁想到有更好的方法,因为这看起来很平凡,很多人都希望看到…… 为了说明,以下代码将生成分组的boxplot import pandas as pddf = pd.DataFrame(rand(100,1),columns=['value'])df.ix[:23,'class
我可以使用groupby获取大小信息并将文本添加到相应的位置.但我不禁想到有更好的方法,因为这看起来很平凡,很多人都希望看到……
为了说明,以下代码将生成分组的boxplot 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') 我想要的是显示每个A类和B类的样本大小,分别为24和76.它可能看起来像传说或在盒子附近的某个地方,或者对我来说是好的. 谢谢! 解决方法
n在班级标签中.我尝试过它作为一个传奇,但我不认为它是如此清晰. R有更多的boxplot选项,包括使盒子的宽度与样本大小成比例;不是matplotlib中的默认值,但很容易看起来真可读:
import pandas as pd from numpy.random import rand,randint df = pd.DataFrame(rand(100,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(['%sn$n$=%d'%(k,len(v)) for k,v in dfg]) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |