plotar gráfico com valores gerados em loop

Caros, estou postando abaixo um loop com o qual estou trabalhando. É longo, mas se vocês olharem para as linhas finais, verão que estou querendo fazer um plot com os resultados. Mas fazendo dessa maneira, enquanto o loop corre, o R vai produzindo um gráfico com só um ponto (referente ao cálculo de 1 corrida do loop) e substituindo-o por outro gráfico a cada corrida do loop. Gostaria de plotar todos os resultados do loop num gráfico só, ou seja, a cada corrida do loop se adicionaria um ponto a um mesmo gráfico. Como fazer? desde já agradeço, Vitor counter = 1 while (counter <= length(MarkerNames)) { matObs = as.matrix(ObsMatD[[counter]]) ExpGen = matrix(0, nrow = nrow(matObs), ncol = ncol(matObs), dimnames = list(rownames(matObs), colnames(matObs))) N = sum(matObs) for(i in 1:nrow(ExpGen)) { for(j in i:ncol(ExpGen)) { if(i==j) { ExpGen[i, j] = sum(matObs[i, ], matObs[ ,j])^2/(4*N) } else if(i!=j) { ExpGen[i, j] = sum(matObs[i, ], matObs[ ,i])*sum(matObs[j, ], matObs[ ,j])/(2*N) } } } print(names(ObsMatD[counter])) popNArm = FrmNA(pop[,counter:(counter + 1)]) Alleles = c(popNArm[,1], popNArm[,2]) AlleleFreq = table(Alleles)/length(Alleles) Hobs = 1 - sum(diag(matObs))/sum(matObs) Hexp = 1 - sum(AlleleFreq^2) Fcoef = (Hexp - Hobs) / Hexp names(Fcoef) = "F" print(Fcoef) NAratio = (1 - nrow(popNArm)/nrow(pop[,counter:(counter + 1)])) names(NAratio) = "NA ratio" print(NAratio) plot(NAratio ~ Fcoef, pch = 19) counter = counter + 1 }

Como seu exemplo nao e' reproduzivel, darei apenas indicacoes gerais que vc deve adaptar a seu codigo: 1) antes de iniciar o while(), inicie a janela grafica ja' usando os limites para os eixos X e Y, por exemplo: plot(1, type='n', xlim=c(0, 1000), ylim=c(0, 20000)) ## vc tera um grafico vazio com o eixo X indo de 0 a 1000 e o eixo Y indo de 0 a 20000 ## mude para os valores adequados 2) substitua o plot(NAratio ~ Fcoef, pch=19) por points(Fcoef, NAratio, pch=19) b
participantes (2)
-
Benilton Carvalho
-
Vitor Aguiar