我有大量的质谱数据,我想在PDF格式的几页中合理地分布。这个想法是,这些图是垂直对齐的,以便于比较。这就是为什么我需要它们具有一定的可读尺寸,我希望每组图在一个页面上一起进行,下一页在下一页上进行,依此类推。 到目前为止,我设法得到了:对于多个文件,每个文件的页面尺寸很好;或:在一个pdf中的几页上尺寸不合适的图。我想在一个pdf中的几个页面上有很好的尺寸图。
我的数据位于COMBO
这是我的解决方案代码(1):
totalrows <- nrow(COMBO)
pagesneeded <- ceiling(totalrows/9)
for(i in 1:pagesneeded){
combolongrow <- melt(COMBO, id.vars = "UnID")
pl<- ggplot(combolongrow, aes(x=variable , y=value, group=UnID)) +
geom_line() +
theme(strip.text.y = element_text(size=6)) +
xlab("Fraction") +
ylab("iBAQ") +
facet_wrap_paginate(~UnID, ncol = 1, nrow = 9, page = i,
strip.position="top", scales="free_y")
ggsave(paste("plot-", i, ".pdf", sep=""), width=21, height=29, units ="cm", dpi = 300)
}
这为每组情节创建了一个间距很大的A4 pdf,在我的情况下总共有8个pdf文件。
输出:所有间距都很好,但每个页面都是一个单独的文件
示例(2):
totalrows <- nrow(COMBO)
pagesneeded <- ceiling(totalrows/9)
pdf("Plots.pdf", paper = "a4")
for(i in 1:pagesneeded){
combolongrow <- melt(COMBO, id.vars = "UnID")
pl<- ggplot(combolongrow, aes(x=variable , y=value, group=UnID)) +
geom_line() +
theme(strip.text.y = element_text(size=6)) +
xlab("Fraction") +
ylab("iBAQ") +
facet_wrap_paginate(~UnID, ncol = 1, nrow = 9, page = i, strip.position="top", scales="free_y")
print(pl)
}
dev.off()
这会创建一个文件(yay),但是这些图的大小是默认的图形设备大小,这是错误的宽高比,并且在我的绘图的所有四边留下了大的边距并使数据不可读。
输出:间距很差,但所有页面都会自动放在一个文档中。
如何将ggsave
中的所有图表合并到一个文件中?或者我如何更改地块的尺寸以便pdf()
以合适的尺寸拾取它们?
感谢您的帮助!
答案 0 :(得分:1)
试试这个:
pdf("Plots.pdf", paper = "a4")
par.save <- par(mfrow = c(4, 1))
for(i in 1:20) {
plot(1:10)
}
par(par.save)
dev.off()