2017-07-01 65 views
0

我试着去这个图我在ggplot做结合[![在这里输入的形象描述] [1] [1]混合ggplot在多页图表在PDF

多带几个曲线图(如下图所示的例子)在一个PDF文件中。但是第一张图在一页上,下一张图在第2页上,图3在第3页上等等。

[![在这里输入的形象描述] [2] [2]

我的问题是,我似乎无法为我不断收到一个错误,我不能打开PDF中的图表1个PDF文件合并文件。 香港专业教育学院试图修改代码,香港专业教育学院在这里看到: Printing multiple ggplots into a single pdf, multiple plots per page

,但它似乎无法工作

(这部分是4个图形中1页)

pdf("plots.pdf", onefile = TRUE) 

plot1 <- ggplot(data = FBMKLCI.df) + 
theme_minimal() + 
    geom_line(aes(x = Date, y = PX_LAST., color = 
PE)) + 
    scale_color_continuous(low = 'green', high='red') + 
    labs(y="", colour = "PE") + 
    theme(legend.position = 'bottom', 
     plot.title = element_text(colour = 'blue', face = 'bold'), 
     legend.key.width = unit(1, "cm")) + 
    ggtitle('FBMKLCI') 


plot2<- ggplot(data = FBM70.df) + 
    theme_minimal() + 
    geom_line(aes(x = Date, y = PX_LAST., color = 
PE)) + 
    scale_color_continuous(low = 'green', high='red') + 
    labs(y="",colour = "PE")+ 
    theme(legend.position = 'bottom', 
     plot.title = element_text(colour = 'blue', face = 'bold'), 
     legend.key.width = unit(1, "cm")) + 
    ggtitle('FBM70') 

plot3 <- ggplot(.... 

plot4<-... 

grid.arrange(plot1, plot2, plot3, plot4, ncol=2) 

(这部分是对于下面的图表)

p <- list() 

for(i in 1:3) { 
    p[[i]] <- list() 

    p[[i]][[1]] <- ggplot(data = plot1) + 
    theme_minimal() + 
    facet_wrap(~Sector, nrow = 5, scales="free_y") + 
    geom_line(aes(x = Date, y = BEST_EPS.BEST_FPERIOD_OVERRIDE.1GY, color = 
    Sector)) + 
    theme(legend.position="none") 

    p[[i]][[2]] <- ggplot(data = plot2) + 
    theme_minimal() + 
    facet_wrap(~Sector, nrow = 5, scales="free_y") + 
    geom_line(aes(x = Date, y = eps.rev3mo, color = Sector)) + 
    theme(legend.position="none") 

    p[[i]][[3]] <- ggplot(data = plot3) + 
    theme_minimal() + 
    facet_wrap(~Sector, nrow = 5, scales="free_y") + 
    geom_line(aes(x = Date, y = eps.rev3mo, color = Sector)) + 
    theme(legend.position="none") 

} 

print(p) 

dev.off() 

我提前道歉,因为这是我第一次使用ggplot2。非常感谢并提前感谢您的帮助。

+0

'marrangeGrob'可以在这里帮助 – user20650

+0

谢谢,但我如何结合不同网页的图形?我已经设计了布局,只需要它们在1个文件中。 –

回答

1

也许这会有所帮助,

enter image description here

library(ggplot2) 
library(gridExtra) 

page1 <- replicate(4, ggplot(), simplify = FALSE) 
other <- replicate(3, replicate(6, ggplot(), simplify = FALSE), simplify = FALSE) 

pdf("multipage.pdf", width=6, height = 4) 
grid.arrange(grobs = page1, ncol=2) 
print(marrangeGrob(grobs = unlist(other, recursive = FALSE), ncol=3,nrow=2)) 
dev.off()