Jarek Statinowy

Jarek Statinowy Z zapałem do pracy

Temat: plot w metodzie

Witam

Mam taką zagwostkę
pisząc własną funkcję np.
mod_1st<-function(szereg)
{
zbiory=matrix(0,length(szereg),3)
zbiory[,1]=szereg
zbiory[,2]=seq(from = 1,by = 1,to=length(szereg))
model1st<-lm(zbiory[,1]~zbiory[,2])

new<-data.frame(x=cbind(zbiory[,2],zbiory[,3]))
wygasle<-predict.lm(model1st, new, se.fit=TRUE, interval="none")

PrognozaPlus1=model1st$coefficients[1]+model1st$coefficients[2]*(zbiory[length(zbiory[,2]),2]+1)

result <- list(PrognozaPlus1,model1st$coefficients,wygasle$fit)
;return(result)
}


i wywołując

wyniki=mod_1st(Dane[,1])

mam dostęp do wszystkich elementów z result, czyli komenda wyniki[[1]] zwróci mi Prognozę na następny okres itd.

Moje pytanie brzmi jak powinna wyglądać funkcja aby mieć dostęp do zapisanych grafik np.

svrautomat<-function(y)
{
n=length(y)
data=as.data.frame(cbind(seq.int(from = 1,to=n,by=1),y))
colnames(data)[]=c("X","Y")

model <- sss(Y ~ X , data)

tuneResult <- tune(sss, data$Y ~ data$X, data = data,ranges = list(epsilon = seq(0.01,0.1,0.001), cost = 2^(2:10)))

print(tuneResult)
plot(tuneResult)

tunedModel <- tuneResult$best.model
tunedModelY <- predict(tunedModel, data)


predictedY <- predict(model, data)
tunedModelY <- predict(tunedModel, data)
plot(data, pch=16)
points(data$X, predictedY, col = "red", pch=4)
points(data$X, tunedModelY, col = "blue", pch=4)



result <- list(plot(tuneResult),plot(data, pch=16),points(data$X, predictedY, col = "red", pch=4),points(data$X, tunedModelY, col = "blue", pch=4))
;return(result)
}


funkcję sss mam zdefiniowaną gdzie indziej.

Generalnie wszystko działa, wykonując kod linijka po linijce dostaję po kolei trzy grafiki. Problem w tym, ze jak mis ię pokaże 3 grafika nie mogę wrócić do pierwszej i drugiej.

Jak mam to zrobić??

Temat: plot w metodzie

Zapisywać do plików (dla ggplot2 - ggsave(), dla base - jpg(nazwa)/png(nazwa); plot(...); dev.off()) o nazwie ustalonej a priori bądź tworzonej dynamicznie na podstawie np. numeru iteracji itp.

Jeśli liczba wykresów jest znana z góry, można utworzyć odpowiedni widok - dla base przez layout() bądź par(mfrow = ...)), dla ggplot2 przez grid.arrange, który "przechwyci" kolejne wykresy i pokaże je razem.



Wyślij zaproszenie do