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'? –