R为单个pdf生成多个图
R Generate Multiple Plots for a single pdf
我有大约 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?
我在大学统计和微积分 类 中的大部分绘图中使用了 R。我发现将多个图合并到单个 PDF 中的最佳方法是应用 Separation of Concerns.
的原则
R 非常擅长生成绘图(我喜欢 png 格式),但 LaTeX 在生成 PDF 方面表现出色。我的简化工作流程如下所示:
- 在已知文件夹中生成图,并按顺序生成名称(
graph_01.png
,等等)。
- 打开我保存的模板文件,以避免重新创建样板代码。
- 使用 shell 脚本生成插入图像所需的 markup。
- 进行任何手动清理、添加字幕等
- 使用
pdflatex
生成 pdf
非常简单,几乎完全自动化。
您可以使用 pdf 函数(或 png、jpeg 等)生成多页 pdf,生成您想要的所有文件,然后使用 dev.off[=11= 关闭文件]
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()
基于 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 个绘图。
我有大约 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?
我在大学统计和微积分 类 中的大部分绘图中使用了 R。我发现将多个图合并到单个 PDF 中的最佳方法是应用 Separation of Concerns.
的原则R 非常擅长生成绘图(我喜欢 png 格式),但 LaTeX 在生成 PDF 方面表现出色。我的简化工作流程如下所示:
- 在已知文件夹中生成图,并按顺序生成名称(
graph_01.png
,等等)。 - 打开我保存的模板文件,以避免重新创建样板代码。
- 使用 shell 脚本生成插入图像所需的 markup。
- 进行任何手动清理、添加字幕等
- 使用
pdflatex
生成 pdf
非常简单,几乎完全自动化。
您可以使用 pdf 函数(或 png、jpeg 等)生成多页 pdf,生成您想要的所有文件,然后使用 dev.off[=11= 关闭文件]
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()
基于 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 个绘图。