如何为R中的多个绘图创建多个pdf?
对于每颗种子,我有两块地。对于三个种子,所有六个绘图都保存到一个pdf中。但我希望每个种子都有单独的pdf格式。例如,对于第一个种子,我需要两个pdf,一个用于如何为R中的多个绘图创建多个pdf?,r,pdf,plot,R,Pdf,Plot,对于每颗种子,我有两块地。对于三个种子,所有六个绘图都保存到一个pdf中。但我希望每个种子都有单独的pdf格式。例如,对于第一个种子,我需要两个pdf,一个用于sample[,1],另一个用于sample[,2]。其余的种子也一样 pdf(file = "example plots.pdf") library(LearnBayes) seeds <- c(314159,523626,626789) for (seed in seeds) { set.seed(seed) x <
sample[,1]
,另一个用于sample[,2]
。其余的种子也一样
pdf(file = "example plots.pdf")
library(LearnBayes)
seeds <- c(314159,523626,626789)
for (seed in seeds) {
set.seed(seed)
x <- c(11, 5, 2, -5, 7, 2, -11, 9, -5, -5, -4, 17, 2, -10, -11, -10,
-4, 2, 1, 13)
a <- 0.1
b <- 0.1
c <- 0
d <- 100^2
M <- 1e3
sample <- array(NA, dim=c(M,2))
mu <- mean(x)
sig2 <- var(x)
for( m in 1:M ){
mu <- rnorm(1, (length(x) + 1/d)^(-1) * (sum(x) + c/d),
sqrt( sig2/(length(x) + 1/d) ))
sig2 <- rigamma(1, .5*length(x)+a+.5,
.5*sum( (x-mu)^2 ) + 1/(2*d)*(mu-c)^2 + b )
sample[m,] <- c(mu,sig2)
}
par(mfrow=c(1,2))
plot( density( sample[,1] ), main=paste("plot_1 for seed", seed))
plot( density( sample[,2] ), main = paste("plot_2 for seed", seed))
setwd("C:/Users/mnudd/Desktop/StackExchange")
save(sample,file =paste0("hrs_sample_4Q_", seed, ".RData"))
}
dev.off()
pdf(file=“example plots.pdf”)
图书馆(LearnBayes)
seeds基本上,您可以将例程包装成一个函数,然后运行sapply
循环
seeds <- c(314159, 523626, 626789)
FUN <- function(x) {
pdf(paste0("file", x, ".pdf")) # initialize .pdf device
set.seed(x) # use seed from `sapply` loop
# do stuff and plot.............................
samp <- replicate(2, rnorm(1e3), simplify=FALSE)
op <- par(mfrow=c(1, 2))
lapply(samp, plot)
par(op)
# ..............................................
dev.off() # close .pdf device
}
sapply(seeds, FUN)
seeds基本上,您可以将例程包装成一个函数并运行sapply
循环
seeds <- c(314159, 523626, 626789)
FUN <- function(x) {
pdf(paste0("file", x, ".pdf")) # initialize .pdf device
set.seed(x) # use seed from `sapply` loop
# do stuff and plot.............................
samp <- replicate(2, rnorm(1e3), simplify=FALSE)
op <- par(mfrow=c(1, 2))
lapply(samp, plot)
par(op)
# ..............................................
dev.off() # close .pdf device
}
sapply(seeds, FUN)
seeds这是您的代码,其中包含一些修改(用注释标记),可以根据需要保存绘图。前面代码的问题是,您的pdf绘图被覆盖,因为它只被调用了一次,名为pdf(file=“example plots.pdf”)
。我修改了代码,这样您可以用不同的名称保存3个pdf绘图
#Moved wd outside the loop
setwd("C:/Users/mnudd/Desktop/StackExchange")
for (seed in seeds) {
set.seed(seed)
x <- c(11, 5, 2, -5, 7, 2, -11, 9, -5, -5, -4, 17, 2, -10, -11, -10,
-4, 2, 1, 13)
a <- 0.1
b <- 0.1
c <- 0
d <- 100^2
M <- 1e3
sample <- array(NA, dim=c(M,2))
mu <- mean(x)
sig2 <- var(x)
for( m in 1:M ){
mu <- rnorm(1, (length(x) + 1/d)^(-1) * (sum(x) + c/d),
sqrt( sig2/(length(x) + 1/d) ))
sig2 <- rigamma(1, .5*length(x)+a+.5,
.5*sum( (x-mu)^2 ) + 1/(2*d)*(mu-c)^2 + b )
sample[m,] <- c(mu,sig2)
}
par(mfrow=c(1,2))
#Moved pdf inside the loop and modified the name of the saved file
pdf(file = paste0("example_plots_", seed,".pdf"))
plot( density( sample[,1] ), main=paste("plot_1 for seed", seed))
plot( density( sample[,2] ), main = paste("plot_2 for seed", seed))
#Moved dev.off inside the loop
dev.off()
save(sample,file =paste0("hrs_sample_4Q_", seed, ".RData"))
}
#将wd移出循环
setwd(“C:/Users/mnudd/Desktop/StackExchange”)
用于(种子中的种子){
种子(种子)
x这是您的代码,经过一些修改(用注释标记),可以按您的需要保存绘图。以前代码的问题是,您的pdf绘图被覆盖了,因为它只被调用了一次,名为pdf(file=“example plots.pdf”)
。我修改了代码,所以您保存了3个不同名称的pdf绘图
#Moved wd outside the loop
setwd("C:/Users/mnudd/Desktop/StackExchange")
for (seed in seeds) {
set.seed(seed)
x <- c(11, 5, 2, -5, 7, 2, -11, 9, -5, -5, -4, 17, 2, -10, -11, -10,
-4, 2, 1, 13)
a <- 0.1
b <- 0.1
c <- 0
d <- 100^2
M <- 1e3
sample <- array(NA, dim=c(M,2))
mu <- mean(x)
sig2 <- var(x)
for( m in 1:M ){
mu <- rnorm(1, (length(x) + 1/d)^(-1) * (sum(x) + c/d),
sqrt( sig2/(length(x) + 1/d) ))
sig2 <- rigamma(1, .5*length(x)+a+.5,
.5*sum( (x-mu)^2 ) + 1/(2*d)*(mu-c)^2 + b )
sample[m,] <- c(mu,sig2)
}
par(mfrow=c(1,2))
#Moved pdf inside the loop and modified the name of the saved file
pdf(file = paste0("example_plots_", seed,".pdf"))
plot( density( sample[,1] ), main=paste("plot_1 for seed", seed))
plot( density( sample[,2] ), main = paste("plot_2 for seed", seed))
#Moved dev.off inside the loop
dev.off()
save(sample,file =paste0("hrs_sample_4Q_", seed, ".RData"))
}
#将wd移出循环
setwd(“C:/Users/mnudd/Desktop/StackExchange”)
用于(种子中的种子){
种子(种子)
x您可以在for
循环中移动pdf
和dev.off
。我只为第一个种子获取一个pdf。您可以在for
循环中移动pdf
和dev.off
。我只为第一个种子获取一个pdf。