我想在R中使用patchwork包来安排四个图:
library(ggplot2)
library(patchwork)
d1 <- runif(500)
d2 <- rep(c("Treatment","Control"),each=250)
d3 <- rbeta(500,shape1=100,shape2=3)
d4 <- d3 + rnorm(500,mean=0,sd=0.1)
plotData <- data.frame(d1,d2,d3,d4)
p1 <- ggplot(data=plotData) + geom_point(aes(x=d3, y=d4))
p2 <- ggplot(data=plotData) + geom_boxplot(aes(x=d2,y=d1,fill=d2))+
theme(legend.position="none")
p3 <- ggplot(data=plotData) +
geom_histogram(aes(x=d1, color=I("black"),fill=I("orchid")))
p4 <- ggplot(data=plotData) +
geom_histogram(aes(x=d3, color=I("black"),fill=I("goldenrod")))
# Arrange plots
{p1 + p2 + plot_layout(ncol=2, widths = c(1, 2))}/
{p3 + p4 + plot_layout(ncol = 2, widths = c(2, 1))}/
{p3 + plot_layout(ncol = 2, widths = c(2, 1))}/
{p4 + plot_layout(ncol = 2, widths = c(2, 1))}
对于合成图的第2行和第3行,我始终将widths
参数指定为c(2,1).然而,该图显示第2行和第3行中的左图在占用宽度上不同.我想问我应该如何修改代码,使第2-4行的左侧面板宽度相同.