首页 > 解决方案 > 如何在 R 的 for 循环中保存绘图

问题描述

我有以下可重现的代码,它产生一系列图表:

N <- 199
K <- N+1
x <- rep(0,N)
x[1] <- 0.5
time <- c(1:K)

G <- c(2.7, 2.9, 3.0, 3.5, 3.82, 3.83, 3.84, 3.85)
for (g in G) {
  for (t in 1:N) {
    x[t+1] = g*x[t]*(1-x[t])
  }
  plot(time,x, main = g, type="l", xlim=c(0,100), col="blue")
}

这会产生 8 个图形,我想将每个图形保存为 .png 文件。我正在尝试做类似的事情:

png("graph_", g, ".png")
plot(time, x, ...)
dev.off

在上述代码中的for(g in G)和循环之间,我创建了一系列名为:graph_2.7.png、graph_3.0.png、... graph_3.85.png 的文件for(t in 1:N)

我不确定是否需要创建一个列表并将每个结果粘贴到所述列表中或稍微更改我的语法

标签: rfor-loopgraphics

解决方案


你非常亲近。您需要paste将文件名一起放在png.

N <- 199
K <- N+1
x <- rep(0,N)
x[1] <- 0.5
time <- c(1:K)

G <- c(2.7, 2.9, 3.0, 3.5, 3.82, 3.83, 3.84, 3.85)
for (g in G) {
  for (t in 1:N) {
    x[t+1] = g*x[t]*(1-x[t])
   }
   png(file = paste0("graph_", g, ".png"))
   plot(time,x, main = g, type="l", xlim=c(0,100), col="blue")
   dev.off()
}

推荐阅读