【问题标题】:Saving multiple plots in R based on different datasets in one PDF根据一个PDF中的不同数据集在R中保存多个图
【发布时间】:2018-04-25 20:16:06
【问题描述】:

我真的是一个初学者,并且在 Stackoverflow 上看到了针对同一数据集中的绘图的答案,但没有看到基于多个集合的绘图。 我有一个包含 100 个小数据集(100 幅画)的数据集,这些画被 30 名参与者从 1 到 4 打分。所以我每幅画都有一个情节,我希望它们都保存在一个 PDF 中。对于每个情节,我怎样才能一次完成或不手动完成?

数据集如下所示:

painting_no measurement participant
1           3           1
1           4           2
1           3           3
1           2           4
...         ...         ...

我首先创建了这样的小数据集:

pai1   <- subset(SeaAWIDE, SeaAWIDE$painting_no =="1")
pai2   <- subset(SeaAWIDE, SeaAWIDE$painting_no =="2")
pai3   <- subset(SeaAWIDE, SeaAWIDE$painting_no =="3")
pai4   <- subset(SeaAWIDE, SeaAWIDE$painting_no =="4")

只有在创建了小数据集之后,我才创建了这样的条形图:

barplot(table(pai1$measurement),   ylab='Frequency', ylim=c(0,30), main= 'Painting 1 ') 
barplot(table(pai2$measurement),   ylab='Frequency', ylim=c(0,30), main= 'Painting 2 ')
barplot(table(pai3$measurement),   ylab='Frequency', ylim=c(0,30), main= 'Painting 3 ')
barplot(table(pai4$measurement),   ylab='Frequency', ylim=c(0,30), main= 'Painting 4 ')

这确实会在 r 窗口中生成图,我可以手动保存并复制到单个文件中 - 但是是否有代码可以将这些条形图自动保存在一个文件中?它可以保存这些已经生成的条形图,也可以将代码重写为循环绘制数字的函数

【问题讨论】:

  • pdf 输出设备应该能够做到这一点。阅读:?Devices?pdf
  • R 支持 LaTeX。如果您有兴趣用 R 写一篇论文,其中包含将在您更改数据而不是复制和粘贴静态图像时更新的图形,您应该研究一下。

标签: r pdf


【解决方案1】:

pdf 函数将图形输出重定向到指定文件。您使用dev.off 关闭设备并将输出再次发送到 R 窗口。代码如下所示:

pdf("path\filename.pdf", height = 8, width = 8) # change height and width as needed for good results
barplot(table(pai1$measurement),   ylab='Frequency', ylim=c(0,30), main= 'Painting 1 ') 
barplot(table(pai2$measurement),   ylab='Frequency', ylim=c(0,30), main= 'Painting 2 ')
# ...
dev.off()

但是您可以通过将所有内容放在一个命令中来大大简化此操作。

painting_data <- split(SeaAWIDE, SeaAWIDE$painting_no)

library(purrr) # walk function
pdf("path\filename.pdf", height = 8, width = 8)
walk(1:length(painting_data), function(i) {
   barplot(
     table(painting_data[[i]]$measurement),
     ylab='Frequency',
     ylim=c(0,30),
     main= paste('Painting',i)
   )
})
dev.off()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-25
    相关资源
    最近更新 更多