我有一个列表p
,其中p
的每个元素都是ggplot2绘图对象的列表。将多个ggplots打印成一个pdf,每页有多个图
我想输出包含p
这样所有的地块,在p[[1]]
情节是第1页单一PDF,在p[[2]]
情节是第2页,等等,我怎么可以这样做?
下面是一些示例代码,为您提供了我正在使用的数据结构 - 为无聊情节道歉,我随机选择了变量。
require(ggplot2)
p <- list()
cuts <- unique(diamonds$cut)
for(i in 1:length(cuts)){
p[[i]] <- list()
dat <- subset(diamonds, cut==cuts[i])
p[[i]][[1]] <- ggplot(dat, aes(price,table)) + geom_point() +
opts(title=cuts[i])
p[[i]][[2]] <- ggplot(dat, aes(price,depth)) + geom_point() +
opts(title=cuts[i])
}
这里有一个潜在的开始:'require(gridExtra); do.call( “grid.arrange”,P [[I]])'。这将在单个设备中绘制p [[i]中的ggplot对象,并很好地排列它们。 – Michael
也看看gridExtra包。我认为这应该会让你获得最大的成绩 – chandler