2016-11-21 83 views
0

我的數據(TransDat70)包含103個變量總數。前102個名稱通過「V102」命名爲「V1」,最後一個變量名稱爲「Time.Min」。for循環來生成並保存多個ggplots在一個單獨的文件

我需要對變量「Time.Min」生成每個變量(V1到V102)的102個ggplots。然後我需要將所有這些ggplots保存在一個單獨的文件(pdf)中,爲了比較的目的,最好將所有這些ggplots全部保存在/下面。

我試過使用的代碼,我可以在網上找到,但沒有一個爲我工作到目前爲止。

這裏是我的代碼:

var_list = combn(names(TransDat70)[1: 102], 2, simplify = FALSE) 
plot_list = list() 

for (i in 1: 3) { 
    p = ggplot(TransDat70, aes_string(x = var_list[[i]][1], y = var_list[[i]][2])) + geom_point() 
    plot_list[[i]] = p 
} 

for (i in 1: 3) { 
    plot70 = paste("iris_plot_", i, ".tiff", sep = "") 
    tiff(plot70) 
    print(plot_list[[i]]) 
    dev.off() 
} 

pdf("plots.pdf") 

for (i in 1: 3) { 
    print(plot_list[[i]]) 
} 

dev.off() 

有什麼建議?

回答

0

如果單獨指您將每個圖表放在一個單獨的文件中,那麼如何?

library(ggplot2) 

# FAKE DATA AS EXAMPLE 
TransDat70 <- data.frame(
    1:10, 
    1:10, 
    1:10, 
    1:10, 
    1:10 
) 

colnames(TransDat70) <- c('V1', 'V2', 'V3', 'V4', 'Time.Min') 

for (i in 1:(length(TransDat70) - 1)) { 
    p <- ggplot(TransDat70, aes_string(x = paste('V', toString(i), sep=''), y='Time.Min')) + geom_point() 
    ggsave(paste('~/Desktop/plot_', i, '.pdf', sep=''), p) 
} 

有關更多選項,請參閱ggsave文檔。

如果您打算將它們全部放在一個大文件中,請查看Printing multiple ggplots into a single pdf, multiple plots per page

但是,對於很多情節,它可能會使一個巨大的文件,這可能是開放的問題,特別是如果你有很多點在你的情節。在這種情況下,將它們作爲單獨的文件進行比較可能會更好。