contour
Dada una matriz, y opcionalmente una rejilla de valores de los ejes X e Y, es posible crear un contour en R con la función contour
.
# Datos
x <- -10:10
y <- -10:10
z <- sqrt(outer(x ^ 2, y ^ 2, "+"))
contour(x, y, z)
# También puedes escribir lo siguiente
# pero los ejes estarán entre 0 y 1
contour(z)
Número de niveles
El argumento nlevels
controla el número de niveles a ser dibujados. El valor por defecto es 10.
# Datos
x <- -10:10
y <- -10:10
z <- sqrt(outer(x ^ 2, y ^ 2, "+"))
contour(x, y, z,
nlevels = 20)
Líneas de contorno
Ten en cuenta que puedes cambiar el ancho y tipo de línea del contour con lwd
y lty
, respectivamente, así como el tamaño de las etiquetas de los niveles con labcex
, cambiar las etiquetas con labels
o eliminarlas estableciendo drawlabels = FALSE
.
# Datos
x <- -10:10
y <- -10:10
z <- sqrt(outer(x ^ 2, y ^ 2, "+"))
contour(x, y, z,
labcex = 1.2, labels = 1:10,
lwd = 2, lty = 1)
Paleta de colores
Puedes personalizar el color de las curvas de nivel con el argumento col
, pasando un color o una paleta de colores, como en el ejemplo siguiente, que dibuja el contour para el conjunto de datos volcano
.
# Paleta de colores
cols <- hcl.colors(10, "YlOrRd")
contour(volcano,
col = cols)
Contour sobre un gráfico de dispersión
Si quieres agregar curvas de nivel sobre un gráfico de dispersión puedes usar la función kde2d
de la librería MASS
para calcular la estimación de la densidad tipo núcleo de las variables. Recuerda establecer add = TRUE
dentro de contour
.
# install.packages("MASS")
library(MASS)
# Datos
x <- rnorm(500)
y <- rnorm(500)
z <- kde2d(x, y, n = 50)
plot(x, y, pch = 19)
contour(z, lwd = 2, add = TRUE,
col = hcl.colors(10, "Spectral"))
filled.contour
Una función similar a contour
es filled.contour
, que colorea las áreas entre las curvas de nivel. La función se comporta casi de la misma manera que la función de la sección anterior.
filled.contour(volcano)
Número de niveles
En esta función también puedes especificar el número de niveles con nlevels
.
filled.contour(volcano,
nlevels = 10)
Paleta de colores
La paleta de colores se puede establecer con color.palette
o especificando un vector de colores con col
.
filled.contour(volcano,
color.palette = terrain.colors)
filled.contour con curvas de nivel
La función plot.axes
se puede utilizar para agregar curvas de nivel sobre el contour coloreado por áreas, tal y como se muestra en el siguiente ejemplo.
filled.contour(volcano, plot.axes = {
axis(1)
axis(2)
contour(volcano, add = TRUE, lwd = 2)
}
)
También te puede interesar