在pdf

时间:2017-07-01 20:13:46

标签: r pdf ggplot2

我试图结合我在ggplot [![在此处输入图像描述] [1]] [1]

制作的图表

在单个PDF文件中添加一些图表(如下所示)但是第一个图表在一个页面上,下一个图表2在第2页,图3在第3页,依此类推。

[![在此处输入图像说明] [2]] [2]

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

但似乎无法正常工作

(这部分是针对1页中的4个图表)

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。非常感谢并提前感谢您的帮助。

1 个答案:

答案 0 :(得分: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()