使用facet_wrap修复了"数字"图

Jus*_*tin 7 r ggplot2

如果我有一个data.frame dat并想使用facet_wrap以下方法绘制数据组:

dat <- data.frame(x = runif(150), y = runif(150), z = letters[1:15])

ggplot(dat[dat$z %in% letters[1:9], ], aes(x, y)) +
  geom_point() +
  facet_wrap( ~ z, ncol = 3, nrow = 3)
Run Code Online (Sandbox Code Playgroud)

这看起来很棒并且按预期执行.但是,如果我z在新情节上绘制下一组:

ggplot(dat[dat$z %in% letters[10:15], ], aes(x, y)) +
  geom_point() +
  facet_wrap( ~ z, ncol = 3, nrow = 3)
Run Code Online (Sandbox Code Playgroud)

我不再有3行3列.我可以修复使用的情节长宽比,opts(aspect.ratio = 1)但我仍然将它们的布局与我之前的情节不同.我希望它看起来好像页面上总共有9个图,即使有6个或1个.这可能吗?

bap*_*ste 9

试试这个,

library(ggplot2)
library(plyr)
library(gridExtra)

dat <- data.frame(x=runif(150), y=runif(150), z=letters[1:15])

plotone = function(d) ggplot(d, aes(x, y)) + 
  geom_point() + 
  ggtitle(unique(d$z))

p = plyr::dlply(dat, "z", plotone)
g = gridExtra::marrangeGrob(grobs = p, nrow=3, ncol=3)
ggsave("multipage.pdf", g)
Run Code Online (Sandbox Code Playgroud)