0
我的代码中的R下面几行:Muliple图 - 如何放置段,避免右侧空间
dat <- data.frame(mse=rnorm(1000),
m1=c(rep("A",333),rep("B",333),rep("C",334)),
m2=c(rep("E10",250),rep("E20",250),rep("E30",250),rep("E40",250)),
m3=c(rep("F1",200),rep("F2",200),rep("F3",200),rep("F4",200),rep("F5",200)))
par(mfrow = c(1, 3), xpd=FALSE)
par(cex = 0.6)
par(mar = c(0, 0, 0, 6), oma = c(6, 4, 0.5, 0.0))
par(tcl = -0.25)
par(mgp = c(2, 0.6, 0))
boxplot(mse ~ m1, data=dat, ylim=c(-4,4), axes=F)
axis(1, at=1:3, labels=c("A", "B", "C"))
axis(2)
boxplot(mse ~ m2, data=dat, ylim=c(-4,4), axes=F)
axis(1, at=1:4, labels=c("E10", "E20", "E30", "E40"))
par(xpd=NA)
segments(-0.5,par("usr")[3],-0.5,par("usr")[4],lty=2)
par(xpd=FALSE)
boxplot(mse ~ m3, data=dat, ylim=c(-4,4), axes=F)
axis(1, at=1:5, labels=c("F1", "F2", "F3", "F4","F5"))
box("inner")
par(xpd=NA)
segments(-1,par("usr")[3],-1,par("usr")[4],lty=2)
par(xpd=FALSE)
这里是我的问题:
- 的展示位置在箱形图之间进行区分对于我来说似乎有点奇怪,它可以轻松完成吗?
- 我设置右边距等于6,但我不会在最后一个箱线的这个边距右边。我怎样才能避免这种情况?
我意识到,最简单的方法来得到我想要的东西,是给数据作为一个列表箱线图()调用:
dat <- data.frame(mse=rnorm(1000),
m1=c(rep("A",333),rep("B",333),rep("C",334)),
m2=c(rep("E10",250),rep("E20",250),rep("E30",250),rep("E40",250)),
m3=c(rep("F1",200),rep("F2",200),rep("F3",200),rep("F4",200),rep("F5",200)))
datList <- list(A=dat[dat$m1=="A",]$mse,
B=dat[dat$m1=="B",]$mse,
C=dat[dat$m1=="C",]$mse,
E10=dat[dat$m2=="E10",]$mse,
E20=dat[dat$m2=="E20",]$mse,
E30=dat[dat$m2=="E30",]$mse,
E40=dat[dat$m2=="E40",]$mse,
F1=dat[dat$m3=="F1",]$mse,
F2=dat[dat$m3=="F2",]$mse,
F3=dat[dat$m3=="F3",]$mse,
F4=dat[dat$m3=="F4",]$mse,
F5=dat[dat$m3=="F5",]$mse)
par(mfrow = c(1, 1))
par(cex = 0.6)
par(mar = c(0, 3.5, 0, 0), oma = c(6, 4, 0.5, 0.5))
par(tcl = -0.25)
par(mgp = c(2, 0.6, 0))
boxplot(datList, at = c(1:3, 5:8, 10:14), xlim = c(1, 14), axes = F, ylab="mse")
box(); axis(2, las = 1);
axis(1, labels = c("A", "B", "C", "E10", "E20", "E30", "E40", "F1", "F2", "F3", "F4", "F5"), at = c(1:3, 5:8, 10:14))
abline(v = c(4, 9), lty = 2)
然后我得到以下结果:
为什么使用'grid.arrange'替代'facet_wrap'? –