我有一个约100个不同群组的清单;
categories <- c('cat1','cat2','cat3',....)
我想写一个循环,一次只抓取1个类别的数据,并生成一个图(x,y);例如......
for (i in 1:length(categories){
category_data <- data[which(data$category==categories[i]),]
plot(category_data$y,category_data$x)}
### however, I would like to save EACH plot to a single PDF that I can scroll through to quickly visualize everything at once
如何使用100个不同的图生成单个PDF?
答案 0 :(得分:1)
您可以使用pdf函数(或png,jpeg等)生成多页pdf,生成所需的所有文件,然后使用dev.off关闭文件
pdf(file = "output.pdf")
for (i in 1:length(categories){
category_data <- data[which(data$category==categories[i]),]
plot(category_data$y,category_data$x)}
dev.off()
答案 1 :(得分:0)
在我的大学统计和微积分课程中,我使用R作为大部分图形。我发现将多个图表合并到一个PDF中的最佳方法是应用Separation of Concerns的原则。
R非常适合生成图表(我赞成png格式),但是LaTeX因为生成PDF而摇摆不定。我简化的工作流程看起来像这样:
graph_01.png
等)。pdflatex
非常简单,几乎完全自动化。
答案 2 :(得分:0)
基于OP想要每个PDF页面4个图表,我建议:
pdf('plots.pdf')
par(mfrow=c(2,2))
for (i in 1:length(categories){
category_data <- data[which(data$category==categories[i]),]
plot(category_data$y,category_data$x)}
dev.off()
如果OP决定每页绘制不同数量的图形,则可以更改mfrow
参数。目前它设置为2行x 2列=每页4个图。