2016-11-21 84 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

但是,对于很多情节,它可能会使一个巨大的文件,这可能是开放的问题,特别是如果你有很多点在你的情节。在这种情况下,将它们作为单独的文件进行比较可能会更好。