Tengo una lista, p
, donde cada elemento de p
es una lista de objetos de trazado ggplot2.Imprimir múltiples ggplots en un solo PDF, varias gráficas por página
me gustaría dar salida a un solo PDF que contiene todas las parcelas en p
tal que las parcelas en p[[1]]
están en la página 1, las parcelas en p[[2]]
están en la página 2, etc. ¿Cómo puede hacer esto?
Aquí hay un código de ejemplo para proporcionarle la estructura de datos con la que estoy trabajando: disculpas por las tramas aburridas, seleccioné variables al azar.
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])
}
Aquí hay un posible comienzo: 'require (gridExtra); do.call ("grid.arrange", p [[i]]) '. Eso trazará los objetos ggplot en p [[i]] en un solo dispositivo, organizándolos muy bien. – Michael
Consulte también el paquete gridExtra. Creo que eso debería hacerte llegar hasta el final – chandler