在R中保存多个PDF文件的问题

3

我正在尝试使用R语言中的“for”循环保存多个xyplots,但是如果我执行以下循环,我无法获得完整的pdf文件(所有文件大小相同且无法打开):

for (i in 1:length(gases.names)) {
   # Set ylim;
   r_y <- round(range(ratio.cal[,i][ratio.cal[,i]<999], na.rm = T), digits = 1);
   r_y <- c(r_y[1]-0.1, r_y[2]+0.1);

   outputfile <- paste (path, "/cal_ratio_",gases.names[i], ".pdf", sep="");
   dev.new();
   xyplot(ratio.cal[,i] ~ data.GC.all$data.time, groups = data.vial, panel = 
      panel.superpose, xlab = "Date", ylab = gases.names[i], xaxt="n", ylim = r_y);
   savePlot(filename = outputfile, type = 'pdf', device = dev.cur());
   dev.off();
}

之前的版本使用了trellis.device(),而不是dev.new() + savePlot()

你知道为什么我不能得到好的PDF文件吗?如果我手动操作就可以成功...有什么想法吗?

1个回答

5

直接使用 pdf

for (i in seq_along(gases.names)) {
  # Set ylim
  r_y <- round(range(ratio.cal[,i][ratio.cal[,i]<999], na.rm = T), digits = 1)
  r_y <- c(r_y[1]-0.1, r_y[2]+0.1)

   outputfile <- paste (path, "/cal_ratio_",gases.names[i], ".pdf", sep="")
   pdf(file = outputfile, width = 7, height = 7)
   print(xyplot(ratio.cal[,i] ~ data.GC.all$data.time, groups = data.vial, 
                 panel =  panel.superpose, xlab = "Date", ylab = gases.names[i], 
                 xaxt="n", ylim = r_y))

  dev.off()

}

4
注意使用 print,这与最常见的常见问题有关。 - joran

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接