Mastering Data Visualization with ggplot2 Aesthetics and Geoms

Classified in Medicine & Health

Written on in English with a size of 4.48 KB

Configuración Inicial de Tidyverse

install.packages("tidyverse")
library(tidyverse)
mpg

Generamos un gráfico de dispersión básico utilizando los datos mpg:

ggplot(data=mpg)+geom_point(mapping=aes(x=displ,y=hwy))

Gráficos Estéticos en ggplot2

La Propiedad Estética es una propiedad visual que consiste en incluir otras variables como tamaño, forma y color en el gráfico, mapeándolas dentro de aes().

Mapeo de Variables a Estéticas

ggplot(data=mpg)+geom_point(mapping=aes(x=displ,y=hwy,color=class))
ggplot(data=mpg)+geom_point(mapping=aes(x=displ,y=hwy,size=class))
ggplot(data=mpg)+geom_point(mapping=aes(x=displ,y=hwy,alpha=class))
ggplot(data=mpg)+geom_point(mapping=aes(x=displ,y=hwy,shape=class))

Uso de Facetas para Subdividir Gráficos

Las facetas permiten subdividir el gráfico original en múltiples subplots basados en los valores de una o dos variables categóricas.

  • facet_wrap: Utilizado para una sola variable.
ggplot(data=mpg)+
  geom_point(mapping=aes(x=displ,y=hwy))+
  facet_wrap(~class,nrow=2)
  • facet_grid: Utilizado para dos variables (filas ~ columnas).
ggplot(data=mpg)+
  geom_point(mapping=aes(x=displ,y=hwy))+
  facet_grid(drv~cyl)
  • facet_grid (una dimensión): Utilizando el punto . para omitir una dimensión.
ggplot(data=mpg)+
  geom_point(mapping=aes(x=displ,y=hwy))+
  facet_grid(.~cyl)

Objetos Geométricos (Geoms)

Los objetos geométricos definen la forma en que se representan los puntos de datos.

Comparación de Geoms: Point vs Smooth

Izquierda: Puntos de dispersión (geom_point).

ggplot(data=mpg)+
  geom_point(mapping=aes(x=displ,y=hwy))

Derecha: Línea de suavizado (geom_smooth).

ggplot(data=mpg)+
  geom_smooth(mapping=aes(x=displ,y=hwy))

Ajustando la Estética en geom_smooth

ggplot(data=mpg)+
  geom_smooth(mapping=aes(x=displ,y=hwy,linetype=drv))
ggplot(data=mpg)+
  geom_smooth(mapping=aes(x=displ,y=hwy,color=drv))

Múltiples Geoms Combinados

Es posible superponer diferentes geoms en el mismo gráfico.

ggplot(data = mpg) +  geom_point(mapping = aes(x = displ, y = hwy)) +  geom_smooth(mapping = aes(x = displ, y = hwy ))

Transformaciones y Gráficos de Barras

Antes de visualizar, es útil entender la estructura de los datos, usando el conjunto de datos diamonds.

head(diamonds)
str(diamonds)

Análisis de la variable categórica cut:

class(diamonds$cut)
table(diamonds$cut)

Ejemplo de manipulación básica:

cut2=as.vector(diamonds$cut)
class(cut2)
table(cut2)
barplot(table(cut2))

Gráficos de Barras con ggplot2

geom_bar calcula automáticamente los conteos (frecuencias) de la variable mapeada al eje X.

ggplot(data = diamonds) +  geom_bar(mapping = aes(x = cut))
ggplot(data = diamonds) +  stat_count(mapping = aes(x = cut))

Gráficos de Barras en Proporciones

Para mostrar proporciones en lugar de conteos, se utiliza la variable calculada ..prop.. y se requiere agrupar (group = 1).

ggplot(data = diamonds) +  geom_bar(mapping = aes(x = cut, y = ..prop.., group = 1))

Uso de stat_summary

stat_summary permite calcular y visualizar estadísticas resumidas (mínimo, máximo, mediana) para una variable continua agrupada por una categórica.

ggplot(data = diamonds) +  stat_summary(
    mapping = aes(x = cut, y = depth),
    fun.ymin = min,
    fun.ymax = max,
    fun.y = median
  )

Ajuste de Parámetros Visuales

Se utiliza color para el contorno y fill para rellenar las barras. Cuando se mapea una variable a fill, se genera una leyenda y se aplica el color según la variable (ej. clarity).

ggplot(data = diamonds) +  geom_bar(mapping = aes(x = cut, color = cut))  
ggplot(data = diamonds) +  geom_bar(mapping = aes(x = cut, fill = cut))
ggplot(data = diamonds) +  geom_bar(mapping = aes(x = cut, fill=clarity))

Related entries: