这个问题在这里已经有了答案:
multiple graphs in one canvas using ggplot2
(3 个回答)
4年前关闭。
我有这个代码:
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)
我试着做一个
par(mfrow= c(3,3))
在 1 个屏幕中获取所有 9 个图,但它不起作用。我必须使用 ggplot。
最佳答案
看看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 )
关于r - R 中的 par(mfrow) 用于 ggplot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43356911/