如何解决将样本大小添加到箱线图
我们测量了不同年龄组的抗体水平,每个组的样本量不同。
我想在箱形图的顶部添加相应组的样本量(即学步男孩的样本量)。附上的照片显示了我的一张条形图。
我创建条形图的代码:
graph box igg1ugml_log10,over(female_sex) over(age_groups) ///
bar(samplesize) graphregion(color(white)) ///
title(Anti-EPEC IgG1 (ug/ml) in boys and girls) asyvars ///
ylabel(2.69897 "500" 3 "1,000" 3.3 "2000" 3.69 "5000" 3.95 "9000")
解决方法
要向 graph box
添加文本,请使用记录的 text()
选项。这是一个可重现的示例。除了使用图表编辑器之外,除了摆弄看起来足够好的内容之外,我没有任何其他方法可以确定文本位置。
sysuse auto,clear
gen logprice = log10(price)
ssc install mylabels
su price
mylabels 3000(2000)15000,myscale(log10(@)) local(yla)
graph box logprice,over(foreign) yla(`yla',ang(h)) ///
text(4.25 21.2 "{it:n} = 52") text(4.25 79.8 "{it:n} = 22") ///
ysc(r(. 4.3)) scheme(s1color) ytitle(Price (USD))
注意。要正确显示微克的 mu,请参阅 Stata 中的 help graph text
并搜索希腊字母。
编辑
SSC 的stripplot
也可以生成箱线图,尽管它的默认值和可能性都与 graph box
不同。这是一个可重现的示例。
sysuse auto,clear
egen count = count(mpg),by(rep78)
gen where = 10.5
stripplot mpg,box vertical ms(none) pctile(5) over(rep78) ///
yla(12 41 15(5)40,ang(h)) ///
addplot(scatter where rep78,mla(count) ms(none) mlabpos(0) ///
mlabsize(medsmall)) scheme(s1color)
同样,虽然这是可重现的代码,但选择 10.5 是因为此处未显示其他值。您可以尝试通过基于样本最大值和最小值的计算自动进行选择,当然还有您对它应该在哪里的偏好。如果您要生产几十个这样的产品,那将是一个好主意。对于论文或演示文稿的单个情节,我会玩。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。