在循环内的R中的一个图上绘制多个图

时间:2016-10-24 02:00:14

标签: r for-loop plot

我想在R中的for循环中绘制一个曲线中的一些曲线,并将其保存为png。 当我使用par(new = False)执行此操作时,轴会变为粗体,因为它会针对每条曲线进行渲染,因此我会针对除第一个绘图之外的每个曲线关闭轴,但这似乎是一个非常不优雅的解决方案。

更像R的方式是什么? 以下是我的所有代码:

x<-matrix(rnorm(20000,5,3), nrow=200, ncol=100)
y<-matrix(0, nrow=200, ncol=100)

for (i in 1:200) {
  for (j in 1:100) {
    y[i,j] <- mean(x[i,1:j])
  } 
}

png(filename="./a1.png")

#here is the ugly bit
plot(1:100,y[1,1:100],type="l", ylim=range(c(10,0)))
par(new = TRUE)
for (j in 2:200) {
  plot(1:100,y[j,1:100],type="l", ylim=range(c(10,0)), xaxt='n', yaxt='n', ann=FALSE)
  par(new = TRUE)
}

graphics.off()

1 个答案:

答案 0 :(得分:2)

plot(1:100, y[1,1:100], type="l", ylim=range(c(10,0)))
for (j in 2:200) lines(1:100, y[j,1:100])

或,

matplot(1:100, t(y[,1:100]), t="l", lty=1, ylim=range(c(10,0)))