保存乘法 pdf 图 r

Saving multiply pdf plots r

我已经制作了一个循环来制作乘法图,但是我无法保存它们,我的代码如下所示:

#----------------------------------------------------------------------------------------#
# RING data: Mikkel
#----------------------------------------------------------------------------------------#
# Set working directory
setwd()

#### Read data & Converting factors ####
dat <- read.table("Complete RING.txt", header =TRUE)  
str(dat)
dat$Vial <- as.factor(dat$Vial)
dat$Line <- as.factor(dat$Line)
dat$Fly <- as.factor(dat$Fly)  
dat$Temp <- as.factor(dat$Temp)
str(dat)

datSUM <- summaryBy(X0.5_sec+X1_sec+X1.5_sec+X2_sec+X2.5_sec+X3_sec~Vial_nr+Concentration+Sex+Line+Vial+Temp,data=dat, FUN=sum)
fl<-levels(datSUM$Line)

colors = c("#e41a1c", "#377eb8", "#4daf4a", "#984ea3")

meltet <- melt(datSUM, id=c("Concentration","Sex","Line","Vial", "Temp", "Vial_nr"))

levels(meltet$variable) <- c('0,5 sec', '1 sec', '1,5 sec', '2 sec', '2,5 sec', '3 sec')

meltet20 <- subset(meltet, Line=="20")
meltet20$variable <- as.factor(meltet20$variable)

AllConcentrations <- levels(meltet20$Concentration)

for (i in AllConcentrations) {
  meltet.i <- meltet20[meltet20$Concentration ==i,]
  quartz()
  print(dotplot(value~variable|Temp, group=Sex, data = meltet.i ,xlab="Time", ylab="Total height pr vial [mm above buttom]", main=paste('Line 20 concentration ', meltet.i$Concentration[1]),
                key = list(points = list(col = colors[1:2], pch = c(1, 2)),
                           text = list(c("Female", "Male")),
                           space = "top"), col = colors, pch =c(1, 2))) }

我已经尝试使用 quartz.save 函数,但这只会覆盖文件。如果有任何区别,我将使用 mac。

当我想在循环中保存多个图时,我倾向于做类似...

for(i in AllConcentrations){

meltet.i <- meltet20[meltet20$Concentration ==i,]

pdf(paste("my_filename", i, ".pdf", sep = ""))
  dotplot(value~variable|Temp, group=Sex, data = meltet.i ,xlab="Time", ylab="Total height pr vial [mm above buttom]", main=paste('Line 20 concentration ', meltet.i$Concentration[1]),
            key = list(points = list(col = colors[1:2], pch = c(1, 2)),
                       text = list(c("Female", "Male")),
                       space = "top"), col = colors, pch =c(1, 2))
dev.off()
}

这将为 AllConcentrations 中的每个级别创建一个 pdf 文件,并将其保存在您的工作目录中。它会将 my_filename、迭代次数 i.pdf 粘贴在一起,使每个文件都是唯一的。当然,你会想在 pdf 函数中调整高度和宽度。