我有一個列表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