2012-10-29 39 views
3

我試圖保存在R中用「for」循環創建的幾個xyplots,並且我無法獲得完整的pdf文件(所有文件都具有相同的大小,我不能打開它們),如果我執行下面的循環:在R中保存多個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文件?如果我這樣做「手動」它的作品...任何想法?

回答

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'的',與此相關的最常見的[常見問題](http://cran.r-project.org/doc/FAQ/R-FAQ的.html#爲什麼-DO-lattice_002ftrellis圖形 - 不work_003f)。 – joran