2013-07-23 33 views
0

我試圖通過循環一些數據來繪製大量圖,但繪圖函數封裝在for循環中時產生的圖是損壞的PDF。爲什麼ggplot2圖形在循環結束時無法繪製?

我已經把它縮小到這裏的一個小例子;這應該如預期產生1.pdf,但在循環內生成的2.pdf和3.pdf是稍小的文件,並且不能在PDF閱讀器軟件中打開。

i <- 1 

pdf(paste(i,'.pdf',sep='')) 
ggplot(NULL,aes(x=i, y=i)) + 
    geom_point() + 
    coord_cartesian(xlim = c(0, 10), ylim = c(0, 10)) + 
    ggtitle(paste('i =', i)) 
dev.off() 


for(i in 2:3) { 
    pdf(paste(i,'.pdf',sep='')) 
    ggplot(NULL,aes(x=i, y=i)) + 
    geom_point() + 
    coord_cartesian(xlim = c(0, 10), ylim = c(0, 10)) + 
    ggtitle(paste('i =', i)) 
    dev.off() 
} 

怎麼了?

回答

2

你要打印:print(ggplot(...))

+0

我認爲這是正確的(愚蠢的錯誤!),但爲什麼那麼它在循環外工作? – Statto

+1

FAQ 7.22 http://www.hep.by/gnu/r-patched/r-faq/R-FAQ_73.html – baptiste