微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用前循环在PDF中绘制多个图

如何解决使用前循环在PDF中绘制多个图

我努力使用for-loop.s创建李克特图。

我使用此代码创建李克特图(使用results[[x]] <- likert(questions[[x]])

pdf(file=paste0(getwd(),"/dir/","name","plot.pdf") )
plot(results[[1]],type="bar")
dev.off()

在称为独立图时,将为每个图正确创建PDF。 但是,当我要遍历数据以为绘图创建多个PDF时,将创建文件,但无法打开文件

for (x in 1:length(results)) {
  pdf(file=paste0(getwd(),categories[x],"-plot.pdf") )
  plot(results[[x]],type="bar")
  dev.off()
}

但是在终端中致电file name-plot.pdf给我:

name-likert.pdf: PDF document,version 1.4

我现在很困惑,因为我已经成功使用了几次以下代码

for(l in 1:length(lquestions))
  pdf(file=paste0(getwd(),categories[l],".pdf") )
  par(mfrow=c(4,3))
  for(i in 1:(length(questions[[categories[l]]] ))  ){
    bp <- barplot(questions[categories[l]][[1]][[i]])
  }
  dev.off()  
}
  • 如何修复代码以正确创建PDF?
  • 当尝试为绘图创建多个PDF时,为什么两个代码段的工作方式如此不同?

更新

我刚刚发现,遵循this answer,可以将图正确地放入PDF:

for(...){
  [...]
  plots[[x]] <- plot(results[[x]],type="bar")
}

pdf(file=paste0(getwd(),"plots.pdf") )
for (i in 1:length(plots)) {
  print(plots[[i]])
}
dev.off()

我仍然有兴趣了解那里发生的事情以及为什么它在第一次循环中不起作用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。