Gráfico de dispersión suavizado con 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)

Gráfico de dispersión suavizado en R

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)

Gráfico de dispersión suavizado con puntos

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")

Gráfico de dispersión suavizado con smoothScatter

Selección de la ventana

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.

Selección de la ventana con smoothScatter

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

smoothScatter bandwidth

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

Selección de color

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))

Paleta de colores de un gráfico de dispersión suavizado con la función smoothScatter

También te puede interesar