Traçar dois gráficos no mesmo terreno em R

Eu gostaria de traçar y1 e y2 na mesma trama.

x  <- seq(-2, 2, 0.05)
y1 <- pnorm(x)
y2 <- pnorm(x, 1, 1)
plot(x, y1, type = "l", col = "red")
plot(x, y2, type = "l", col = "green")

Mas quando eu faço assim, eles não são conspirados juntos na mesma trama.

Em Matlab pode-se fazer "hold on", mas alguém sabe como fazer isso em R?

Solução

lines() ou points() irão adicionar ao gráfico existente, mas não irão criar uma nova janela. Então você'd precisa fazer

plot(x,y1,type="l",col="red")
lines(x,y2,col="green")
Comentários (9)

Você também pode utilizar o par e plotar no mesmo gráfico, mas em eixos diferentes. Algo como se segue:

plot( x, y1, type="l", col="red" )
par(new=TRUE)
plot( x, y2, type="l", col="green" )

Se você ler em detalhes sobre par em R, você será capaz de gerar gráficos realmente interessantes. Outro livro para ver é Paul Murrel's R Graphics.

Comentários (5)

Se você estiver usando gráficos de base (ou seja, não gráficos de malha/grelha), então você pode imitar MATLAB's hold on feature usando as funções pontos/linhas/polígonos para adicionar detalhes adicionais aos seus gráficos sem iniciar um novo gráfico. No caso de um layout multiplot, você pode usar par(mfg=...) para escolher em qual plot você adiciona coisas.

Comentários (0)