我试图结合我在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。非常感谢并提前感谢您的帮助。
答案 0 :(得分:1)
也许这有帮助,
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()