Añadir puntos y lineas a un gráfico

En R es posible superponer puntos y lineas a gráficos recien creados en la pantalla gráfica. Por ejemplo, supongamos que queremos añadir al diagrama de dispersión de la Figura [*] unos puntos que indiquen los cuartiles y la media de ambas variables. El resultado (Figura [*]), se obtiene de la siguiente manera
plot(cars$speed,cars$dist)
points(fivenum(cars$speed)[c(2,3,4)],fivenum(cars$dist)[c(2,3,4)],

pch=18,cex=2,col=2)
points(mean(cars$speed),mean(cars$dist),pch=15,cex=2,col=4)
Con la segunda instrucción añadimos el primer cuartil, la mediana y el tercer cuartil8.1 de una variable frente a los de la otra, en forma de rombos rojos. Con la tercera, añadimos la media de speed frente a la media de dist y la representamos como un cuadrado azul.

Figura: Añadir puntos con points()
Image points

En la sección correspondiente a la regresión, hemos visto cómo añadir la linea de ajuste por mínimos cuadrados a un diagrama de dispersión con la función abline(). En este apartado veremos otras posibilidades en relación a la adición de curvas y líneas a gráficos.

Volvamos de nuevo al gráfico de cars. Imaginemos que deseamos añadir dos lineas que indiquen los valores medios de vada variable, de modo que el gráfico quede dividido en cuatro sectores (valores inferiores a las dos medias, inferiores a una pero superior a la otra, y superiores a las dos medias). Podríamos hacerlo como sigue
plot(cars$speed,cars$dist)
abline(h=mean(cars$dist),lty=3,col=4)
abline(v=mean(cars$speed),lty=3,col=4)
Con la segunda orden, mandamos hacer una linea horizontal que pase por la media de la variable dist. Con la tercera hacemos una horizontal que pase por la media de speed. El resultado lo vemos en la Figura [*].

Figura: Añadir lineas con abline()
Image abline

Veamos, finalmente, cómo añadir a un gráfico una función matemática. Como ejemplo tomaremos la Figura [*] de la página [*].
En ella se puede observar un histograma al que se le ha superpuesto la función de distribución normal teórica para su contraste visual. Se ha obtenido mediante la siguiente serie de instrucciones
hist(scale(cars$speed),prob=T)
curve(dnorm(x),add=T)
Con la primera obtenemos el histograma de la variable estandarizada. Con la segunda se le superpone la distribución teórica para lo cual se utiliza la función dnorm(). Para una variable estandarizada, la gráfica se obtiene con dnorm(x). Hay que hacer notar el add=T que se incorpora para que la función se superponga al gráfico preexistente.
También podemos utilizar estas herramientas para añadir a la función de densidad de la Figura [*] (página [*]) la función teórica y obtener la Figura [*].
Las instrucciones para ello serían
plot(density(scale(cars$speed)),col=4,lwd=2,ylim=c(0,0.5))
curve(dnorm(x),add=T,col=2,lwd=2)
Con la primera dibujaremos la función de densidad de la variable cars$speed estandarizada en color azul. Con la segunda le superpondremos la función de densidad teórica en color rojo.

Figura: Añadir curvas con curve()
Image curvanormal
2007-02-12