打印图中的多个corrplots(R)

Print multiple corrplots (R) in the figure

我正在使用 corrplot 并在此处查看示例 我可以在同一张图中显示多个 corrplots(R)。但是我想保存到一个 tiff 文件,因为我使用循环我不知道如何实现这一点。请参阅下面的代码。

我循环遍历了我的几个实验块(块 1、块 2),并将 corrplot 一个接一个地绘制出来。这行得通。我不明白如何指向 tiff 文件。特别是放在哪里

tiff(file = 'Figure4Plots.tiff', width = 12, height = 12, units = "in", res = 300) and dev.off() 我试过 dflist 和其他几个但不起作用谢谢!

dflist<-c('Block1', 'Block2') 

par(mfrow=c(2,2))

for (i in seq_along(dflist)) {
#Subset different Blocks
dataCorr<- subset(total , (block == dflist[i] ))

p.mat <- cor.mtest(dataCorr)
M<-cor(dataCorr)

col <- colorRampPalette(c("#BB4444", "#EE9988", "#FFFFFF", "#77AADD", "#4477AA"))
corrplot(M, method="color", col=col(200),  
       type="upper",  title = title,
       addCoef.col = "black", # Add coefficient of correlation
       tl.col="red", tl.srt=45, #Text label color and rotation
       # Combine with significance
       p.mat = p.mat, sig.level = 0.05, insig = "blank", 
       diag=TRUE,
      mar=c(0,0,1,0) )}

我没有你的原始数据,我也不熟悉 corrplot 包,所以我制作了一些虚拟数据并只使用了一个简单的 plot() 函数。除非 corrplot() 函数有什么特殊之处,否则您应该能够将大部分代码包含在 tiff() 块中,如下所示:

dflist <- c('Block1', 'Block2', 'Block3', 'Block4') 

total <- data.frame(block=sample(dflist, size=100, replace=TRUE), x=runif(100), y=runif(100)*2)

tiff(file = 'Figure4Plots.tiff', width = 12, height = 12, units = "cm", res = 72)

    par(mfrow=c(2,2))

    for (thisBlock in dflist) {

        #Subset different Blocks
        dataCorr <- subset(total , (block == thisBlock ))
        dataCorr <- dataCorr[, c('x', 'y')]

        plot(dataCorr)
    }

dev.off()

此代码生成 Figure4Plots.tiff: