我们测量了不同年龄组的抗体水平,每个年龄组的样本大小都不同。
我想在我的盒子图的顶部添加各自组的样本大小(即幼儿男孩的样本大小)。附件中的照片显示了我的一张条形图。
我创建条形图的代码如下:
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")发布于 2021-03-23 02:15:41
要将文本添加到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))

请注意。要正确显示µ微米,请参阅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的结果是使用此处未显示的其他值。您可以尝试通过基于样本最大值和最小值的计算自动选择,当然,也可以根据您对它应该位于的位置的偏好进行计算。如果你正在生产几十个这样的东西,那将是一个好主意。对于一篇论文或演示文稿的单个打印,我只会玩。
https://stackoverflow.com/questions/66751367
复制相似问题