2016-10-24 3 views
1

Я хочу построить некоторые кривые на одном графике в цикле for в R и сохранить его как png. Когда я делаю это с помощью par (new = False), ось становится полужирным, потому что она отображается для каждой из кривых, поэтому я выключаю ось для каждого, кроме первого графика, но это кажется очень неэлегантным решением.Множество графиков на одном графике в R внутри цикла

Что было бы более похоже на 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() 

ответ

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))) 
+1

на самом деле, это достаточно: 'matplot (т (у), тип = "л", ylim = диапазон (c (10,0)), add = FALSE) ' – useR