Ggplot2 y complementos

Iván Mendivelso - Credivalores

Leland Wilkinson: Gramática de los gráficos

Estructura sintáctica

ggplot(data=datos, aes(x=var1, y=var2)) +
  geom_XXX()

ggplot(data=datos) +
  geom_XXX(aes(x=var1, y=var2))

ggplot() +
  geom_XXX(data=datos, aes(x=var1, y=var2))

Ejemplo 1

library(ggplot2)
ggplot(data=iris, aes(x=Sepal.Width, y=Petal.Length)) +
  geom_point()

Propiedades estéticas

Objetos geométricos

Ejemplos de uso de estéticos

Color mapeado en variables cuantitativas

ggplot(data=iris, aes(x=Sepal.Width, y=Petal.Length, col=Sepal.Length)) +
  geom_point()

ggplot(data=iris, aes(x=Sepal.Width, y=Petal.Length, size=Sepal.Length)) +
  geom_point()

Ejemplos de uso de estéticos

Color mapeado en variables cualitativas

ggplot(data=iris, aes(x=Sepal.Width, y=Petal.Length, col=Species)) +
  geom_point()

Ejemplos de uso de estéticos

Ahora con el dataset mpg de {ggplot2}:

ggplot(mpg, aes(displ, hwy, color=manufacturer)) +
  geom_point()

Ejemplos de uso de estéticos

Ahora con el dataset mpg de {ggplot2}:

ggplot(mpg, aes(displ, hwy, color=drv, shape=class, size=cty, alpha=year)) +
  geom_point()

Diagramas de barras

Comparación entre geom_bar() y geom_col()

library(dplyr)
mpg |>
  count(drv) |>
  ggplot() +
  geom_col(aes(drv, n))

mpg |>
  ggplot() +
  geom_bar(aes(drv))

Paquete {patchwork}

library(patchwork)
g1 <- ggplot(data=iris, aes(x=Sepal.Width, y=Petal.Length, col=Species)) +
  geom_point()
g2 <- ggplot(mpg, aes(displ, hwy, color=drv, shape=class, size=cty, alpha=year)) +
  geom_point()
g3 <- ggplot(data=iris, aes(x=Sepal.Width, y=Petal.Length, col=Sepal.Length)) +
  geom_point()

(g1 + g2)/(g1 + g3)/g3

Diagramas de barras

Posición de variable secundaria en el relleno de las barras

b1 <- mpg |>
  ggplot(aes(trans, fill=drv)) +
  geom_bar(position='stack') #default

b2 <- mpg |>
  ggplot(aes(trans, fill=drv)) +
  geom_bar(position='dodge')

b3 <- mpg |>
  ggplot(aes(trans, fill=drv)) +
  geom_bar(position='fill')

b1+b2+b3

Diagramas de barras

Función coord_flip()

b1 <- mpg |>
  ggplot(aes(trans, fill=drv)) +
  geom_bar(position='stack') + #default
  coord_flip()
  
b2 <- mpg |>
  ggplot(aes(trans, fill=drv)) +
  geom_bar(position='dodge') +
  coord_flip()

b3 <- mpg |>
  ggplot(aes(trans, fill=drv)) +
  geom_bar(position='fill') +
  coord_flip()

b1+b2+b3

Función facet_wrap de {ggplot2}

ggplot(iris, aes(Sepal.Length, Petal.Width)) +
  geom_point() +
  facet_wrap(vars(Species))

Paquete {plotly}

Función plotly::ggplotly()

library(plotly)
ggplotly(g2)