R中的par(mfrow)用于ggplot

Ar *_* De 5 r ggplot2

我有以下代码:

plotfn= function(u) {
  flt = filter(d, utensil ==u)
  ggplot(flt,aes(x=p)) + geom_histogram(binwidth = 0.5, position= position_dodge(0.5), color="black",fill="cadetblue4")+ ggtitle("Histogram of P")+labs( x="P", y="Number of Observations")
}
lapply(unique(d$utensil),plotfn)
Run Code Online (Sandbox Code Playgroud)

我试图做一个par(mfrow= c(3,3))在一个屏幕上获得所有9个情节,但这是行不通的。我必须使用ggplot。

Art*_*lov 6

看一下该gridExtra软件包,它可以很好地集成在一起,ggplot2并允许您将多个图放置到单个页面上:https : //cran.r-project.org/web/packages/gridExtra/vignettes/arrangeGrob.html

要使用它,请将ggplot调用的输出存储到一个变量,然后将该变量传递给grid.arrange

myGrobs <- lapply(unique(d$utensil),plotfn)
gridExtra::grid.arrange( grobs = myGrobs, nrow = 3 )
Run Code Online (Sandbox Code Playgroud)


Oui*_*iti 5

这应该使您开始:

install.packages("gridExtra")
library(gridExtra)
grid.arrange(plot1, plot2, ..., ncol=3, nrow = 3)
Run Code Online (Sandbox Code Playgroud)