smoothScatter
Para crear un gráfico de dispersión suavizado en R se puede utilizar la función smoothScatter
. Tan solo tienes que pasar una lista de vectores a la función y se creará una versión suavizada del gráfico de dispersión.
# Datos
set.seed(9)
x <- rnorm(1000)
y <- rnorm(1000)
# Gráfico de dispersión suavizado
smoothScatter(y ~ x)
# Equivalente a:
smoothScatter(x, y)
Puede que hayas notado que algunos puntos se muestran en el gráfico. Estos puntos se corresponden con los puntos de las áreas con las densidades regionales menores y son útiles para identificar datos atípicos. El número de puntos se puede personalizar con nrpoints
.
# Datos
set.seed(9)
x <- rnorm(1000)
y <- rnorm(1000)
# Gráfico de dispersión suavizado
smoothScatter(y ~ x,
nrpoints = 1000)
Además, el símbolo pch y su color se puede personalizar con los argumentos pch
y col
.
# Datos
set.seed(9)
x <- rnorm(1000)
y <- rnorm(1000)
# Gráfico de dispersión suavizado
smoothScatter(y ~ x,
pch = 10, col = "red")
La función smoothScatter
depende de la función bkde2D
de la librería KernSmooth
para calcular la estimación tipo núcleo bidimensional. Sin embargo, puedes establecer la ventana de suavizado que quieras con el argumento bandwidth
.
Ventana grande
Si seleccionas una ventana demasiado grande la estimación será demasiado suave.
# Datos
set.seed(9)
x <- rnorm(1000)
y <- rnorm(1000)
# Gráfico de dispersión suavizado
smoothScatter(y ~ x,
bandwidth = 0.4) # Ventana grande
Ventana pequeña
Una ventana pequeña agrupará los datos demasiado, por lo que la estimación kernel de la densidad estará sobreajustada.
# Datos
set.seed(9)
x <- rnorm(1000)
y <- rnorm(1000)
# Gráfico de dispersión suavizado
smoothScatter(y ~ x,
bandwidth = 0.05) # Ventana pequeña
La función utiliza la paleta de colores blues9
, pero puedes elegir la que quieras especificándola tal y como se muestra en el siguiente ejemplo. Mira la lista de paletas de colores para buscar inspiración.
# Datos
set.seed(9)
x <- rnorm(1000)
y <- rnorm(1000)
palette <- hcl.colors(30, palette = "inferno")
# Gráfico de dispersión suavizado
smoothScatter(y ~ x,
colramp = colorRampPalette(palette))
También te puede interesar