Dumbbell plot: visualizar cambio en ggplot2

Una manera de comparar los cambios en una figura.

Author
Affiliation

AgriTech Bolivia

Published

July 20, 2023

Introducción

El gráfico de mancuernas es una visualización que muestra el cambio entre dos puntos de nuestros datos. Su nombre se debe a la forma de la mancuerna. Es una gran manera de mostrar los datos cambiantes entre dos puntos (piensa en el inicio y el final). Aquí podemos ver la mejora en el ahorro de combustible de los vehículos a lo largo del tiempo (entre 1999 y 2008). La mancuerna muestra el punto inicial (MPG en 1999) y el punto final (MPG en 2008).

Cargar librerias y datos

library(tidyverse)
library(tidyquant)
library(ggalt)

# Data
mpg
# A tibble: 234 × 11
   manufacturer model      displ  year   cyl trans drv     cty   hwy fl    class
   <chr>        <chr>      <dbl> <int> <int> <chr> <chr> <int> <int> <chr> <chr>
 1 audi         a4           1.8  1999     4 auto… f        18    29 p     comp…
 2 audi         a4           1.8  1999     4 manu… f        21    29 p     comp…
 3 audi         a4           2    2008     4 manu… f        20    31 p     comp…
 4 audi         a4           2    2008     4 auto… f        21    30 p     comp…
 5 audi         a4           2.8  1999     6 auto… f        16    26 p     comp…
 6 audi         a4           2.8  1999     6 manu… f        18    26 p     comp…
 7 audi         a4           3.1  2008     6 auto… f        18    27 p     comp…
 8 audi         a4 quattro   1.8  1999     4 manu… 4        18    26 p     comp…
 9 audi         a4 quattro   1.8  1999     4 auto… 4        16    25 p     comp…
10 audi         a4 quattro   2    2008     4 manu… 4        20    28 p     comp…
# ℹ 224 more rows

Paso 1: Preparacion de datos

mpg_by_year_tbl = mpg %>%
  select(hwy, year, model, class)%>%
  pivot_wider(
    names_from = year,
    values_from = hwy,
    id_cols = c(class, model),
    values_fn = function(x) mean(x, na.rm = TRUE),
    names_prefix = "year_"
  )%>%
  mutate(model = fct_reorder(model, year_2008))%>%
  drop_na()

Paso 2: Dumbbell plot base

# basic plot with ggalt
g1 = mpg_by_year_tbl%>%
  ggplot(aes(x = year_1999, xend = year_2008,
             y = model, group = model))+
  geom_dumbbell(
    colour="#a3c4dc",
    colour_xend = "#0e668b",
    size=2.5,
    dot_guide = TRUE,
    dot_guide_size = 0.19,
    dot_guide_colour = "grey60"
  )

g1

Paso 3: Configurar con ggplot

g2 = g1 +
  labs(
    title = "Cambio de vehiculos entre 1999 y 2008",
    x="Fuel Economy (MPG)", y="Vehicle Model"
)+
  theme_tq()+
  theme(
    panel.grid.minor = element_blank(),
    panel.grid.major.y = element_blank(),
    panel.grid.major.x = element_line(),
    axis.ticks = element_blank(),
    panel.border = element_blank()
  )

g2

Citation

BibTeX citation:
@online{santos2023,
  author = {Santos, Franklin},
  title = {Dumbbell Plot: Visualizar Cambio En Ggplot2},
  date = {2023-07-20},
  url = {https://franklinsantosm.com/posts/change_plot},
  langid = {en}
}
For attribution, please cite this work as:
Santos, Franklin. 2023. “Dumbbell Plot: Visualizar Cambio En Ggplot2.” July 20, 2023. https://franklinsantosm.com/posts/change_plot.