2014-06-18 31 views
-1

假設您有兩個數據框具有相同的列名稱,但具有不同的值。您現在想要在兩個數據框的相應列中的不同值上繪製散點圖。使用for循環的R中的多個繪圖中的錯誤

for (i in 1:length(a) { 
    pdf("test.pdf") 
    par(mfrow = c(5,3)) 
    plot(WAT_cpm[, colnames(a)[i]], a[, colnames(a)[i]]) 
    dev.off() 
} 

這是行不通的,你只能得到13塊地塊中的一塊。

這樣做是手動工作,如果你在每個圖形之間等待幾秒鐘。

par(mfrow = c(5,3)) 
plot(WAT_cpm[, colnames(a)[1]], a[, colnames(a)[1]]) 
plot(WAT_cpm[, colnames(a)[2]], a[, colnames(a)[1]]) 
plot(WAT_cpm[, colnames(a)[2]], a[, colnames(a)[3]]) 
plot(WAT_cpm[, colnames(a)[3]], a[, colnames(a)[3]]) 
plot(WAT_cpm[, colnames(a)[2]], a[, colnames(a)[2]]) 
plot(WAT_cpm[, colnames(a)[4]], a[, colnames(a)[4]]) 
plot(WAT_cpm[, colnames(a)[5]], a[, colnames(a)[5]]) 
plot(WAT_cpm[, colnames(a)[6]], a[, colnames(a)[6]]) 
plot(WAT_cpm[, colnames(a)[7]], a[, colnames(a)[7]]) 
plot(WAT_cpm[, colnames(a)[8]], a[, colnames(a)[8]]) 
plot(WAT_cpm[, colnames(a)[9]], a[, colnames(a)[9]]) 
plot(WAT_cpm[, colnames(a)[10]], a[, colnames(a)[10]]) 
plot(WAT_cpm[, colnames(a)[11]], a[, colnames(a)[11]]) 
plot(WAT_cpm[, colnames(a)[12]], a[, colnames(a)[12]]) 
plot(WAT_cpm[, colnames(a)[13]], a[, colnames(a)[13]]) 

爲什麼地球上會發生這種情況?

你不能一次全部運行,你必須等待幾秒鐘,這是爲什麼for循環不起作用?

+1

您的循環覆蓋相同的PDF 13次。使用'paste'或者其他方式將'i'放在文件名中,以獲得13個不同名稱的文件。 –

+0

謝謝大家! Misstanke在長度(a)的論點。而且,如果我將par()放在循環外面,它也可以工作。對於(i in 1:length(colnames(a))){(WAT_cpm [,colnames(a)[i]],a [,colnames(a))的par(mfrow = c(5,3)) [i]]) } – user3236594

回答

0

你可以把pdf("test.pdf")dev.off()外面的循環。結果:1個文件和1個頁面。