我有1个完整样本和10个子样本的阅读分数(性别(2)按种族(5)= 10个组合)。我想把所有11个箱图展示在一起。下面的代码生成10个箱图,但没有完整样本比较箱图。
如何将所有11个箱图放在同一个图/图形中,以便它们共享标题,x轴,y轴等?
理想情况下,如何将10个子群体箱图放置在1个最大宽度种群箱图中,该箱图切割(透明地分层)所有10个子群体箱图,允许观察者以图形方式将每个子样本的1Q,中值和3Q与完整的子样本进行比较样品? (参见下面的例子,其中红色框图表示hs1 $读取的完整样本(1Q:44,中位数:50,3Q:60)。)
设定:
hs1 = read.table("http://www.ats.ucla.edu/stat/data/hs1.csv", header = T, sep = ",")
## ten boxplots (that i wish to combine with one more representing full sample)
boxplot( read ~ interaction(gender, race), data=hs1, las=2 )
答案 0 :(得分:3)
boxplot( read ~ interaction(gender, race), data=hs1, las=2 )
bxpfull <- boxplot( hs1$read, plot=FALSE)
bxp(bxpfull, at= 5, add=TRUE, boxwex=18,
pars= list(boxcol="red",medcol="red", medbg="red",
whiskcol="red", staplecol="red") )
如果您想要透明色(并非所有图形设备都支持),那么这会给您一个透明的粉红色结果:
bxp(bxpfull, at= 5, add=TRUE, boxwex=18,
pars= list(boxcol="#ff000050",medcol="#ff000050", medbg="#ff000050",
whiskcol="#ff000050", staplecol="#ff000050") ,las=2)
答案 1 :(得分:0)
如果@ BondedDust的精彩答案会在您的机器上生成以下有缺陷的图形(请注意y轴重叠标签和非透明红色框图)(由于您的图形设备,R版本,默认包等) ,我调整了该代码,以便在我的机器上工作,如下所示。
boxplot( read ~ interaction(gender, race), data=hs1, las=2 )
bxpfull <- boxplot( hs1$read, plot=FALSE)
bxp(bxpfull, at= 5.5, add=TRUE, boxwex=20,
pars= list(boxcol="red", boxfill= "transparent", medlty= "dashed",
medcol="red", medbg="red", axes= FALSE, whiskcol="red", staplecol="red") )
请注意,y轴是固定的,红色的箱线图是透明的。此外,虚线允许中位数为0.3的视图,红色箱线图的中心位置和准确拉伸。