2014-01-24 75 views
-1

我正在寫一個循環。循環的目的是創建許多圖並將它們保存爲PDF。選擇我的數據的子集之後,我做到以下幾點:如果我的,我要繪製的數據的所有子集做手工循環未完成保存pdf

pdf("path to the desired filename", width = 16, height = 7) 

      some ggplot operations... 

    dev.off() 

這本身工作。如果我在循環中嘗試此操作,則PDF設備會保存大量「空白」圖片。

我不明白爲什麼這不會在循環中工作。似乎循環不會等到繪圖正確導出。

+0

除非你給我們一個可重複的例子,否則你不會得到任何有用的答案。請參閱:http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – josliber

+3

print(ggplot_object) – marbel

回答

8

這是一個常見問題。您需要在for循環中使用print(...)

pdf("myfile.pdf") 
for (i in 1:2) { 
    ggplot(mpg, aes(x=cty, y=hwy))+geom_point() 
} 
dev.off() # myfile.pdf is empty (no pages) 

pdf("myfile.pdf") 
for (i in 1:2) { 
    print(ggplot(mpg, aes(x=cty, y=hwy))+geom_point()) 
} 
dev.off() # myfile.pdf has 2 pages.