我正在尝试创建一个包含多个图的pdf。更具体地说,我想保存我的图,每页 4 个。因此,我在 r 中有以下代码(可以工作,但将页面留空 - 第一个 - ):
pdf("Plots/plots_numeric_four_in_page.pdf",paper="a4r",width = 14)
graphlist <- lapply(3:NCOL(agg_num), function(i) {
force(i)
tempColName=dataName_num[i]
print (tempColName)
p<-qplot(Group.1,agg_num[[tempColName]],data = agg_num,color=Group.2,geom = "line",main=tempColName) + xlab("Date") + ylab(paste("Count of ", tempColName)) + geom_line(size=1.5)+ scale_x_date(labels = date_format("%m/%Y"))+
theme(legend.position="bottom",legend.direction="horizontal")+ guides(col=guide_legend(ncol=3))
})
do.call("marrangeGrob",c(graphlist,ncol=2,nrow=2))
dev.off()
它正确显示了大约 50 个绘图,其中 PDF 中每页正确显示 4 个。但是,它会将第一页留空并从第二页开始。我查看了 marrangeGrob 选项,但找不到任何解决该问题的方法。您知道任何解决方法或解决此问题的方法吗?
ggplot2 之间存在一个已知错误gridExtra
这对一些人来说是造成这种情况的原因marrangeGrob
包含 ggplots。手动覆盖grid.draw.arrangelist
功能 (src https://github.com/baptiste/gridextra/blob/master/R/arrangeGrob.r#L252) (marrangeGrob
返回一个arrangelist
对象)可能会修复它(建议here https://github.com/baptiste/gridextra/issues/33).
grid.draw.arrangelist <- function(x, ...) {
for(ii in seq_along(x)){
if(ii>1) grid.newpage() # skips grid.newpage() call the first time around
grid.draw(x[[ii]])
}
}
为以下对象定义一个新类可能会更安全arrangelist
有问题的对象并对它应用修复而不是覆盖grid.draw
对于每一个marrageGrob
范围内调用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)