Visualizaciones base datos comercio e inversion en Mexico

Jorge Cornick, 18 de agosto 2025

Exportaciones totales

Exportaciones a USA

1993-2024
Código
xm |>  
  filter(Pais == "USA") |> 
  ggplot(aes(Año, Exportaciones/1000)) +
  theme_bw() +
  scale_color_brewer(palette = "Dark2") +
  scale_x_continuous(breaks = seq(from =1993, to = 2025, by = 2)) +
  geom_line(linewidth = 1, color = "steelblue4") +
  geom_smooth(color = "steelblue1", fill = "steelblue1", alpha = 0.4)+
  labs(
    x = "",
    y = "Exportaciones a USA", 
    caption = "J.Cornick con base en Data Mexico "
  )
Figura 1: Mexico, exportaciones totales a USA, 1993 - 2024
(En miles de millones de US $)

Esta otra visualización permite ver claramente un cambio en la tendencia lineal a partir de 2018.

Código
xm |>  
  filter(Pais == "USA") |> 
  ggplot(aes(Año, Exportaciones/1000)) +
  theme_bw() +
  scale_x_continuous(breaks = seq(from =1993, to = 2025, by = 2)) +
  geom_line(linewidth = 1, color = "steelblue4") +
  geom_smooth(
    data = . %>% filter(Año < 2018),
    method = "lm",
    se = TRUE,
    fill = "steelblue1",
    alpha = 0.2,
    linetype = 3) +
  geom_smooth(
    data = . %>% filter(Año > 2016, Año < 2025),
    method = "lm",
    se = TRUE,
    fill = "steelblue1",
    alpha = 0.2,
    linetype = 3) +
  labs(
    x = "",
    y = "", 
    caption = "J.Cornick con base en Data Mexico ") +
  guides(fill = "none")
Figura 2: Mexico, exportaciones totales a USA, 1993 - 2024, v2
(En miles de millones de US $)
2015-2024
Código
xm |>  
  filter(Pais == "USA", Año > 2014) |> 
  ggplot(aes(Año, Exportaciones/1000))+
  theme_bw()+
  scale_color_brewer(palette = "Dark2")+
  scale_x_continuous(breaks = seq(from =2015, to = 2025, by = 1)) +
  geom_line(linewidth = 1, color = "steelblue4")+
  geom_smooth(
    data = . %>% filter(Año < 2025),
    color = "steelblue1", 
    fill = "steelblue1", alpha = 0.4)+
  labs(
    x = "",
    y = "",
    caption = "J.Cornick con base en Data Mexico"
  )+
  theme(legend.position = "bottom")
Figura 3: Mexico, exportaciones totale a USA, 2011 - 2024
(En miles de millones de US $)

Exportaciones a otros socios comericales importantes

1993-2024
Código
xm |>  
  filter(Pais != "USA" & Pais != "Otros", Año < 2025) |> 
  mutate(Pais = fct_reorder(Pais, desc(Exportaciones), .fun = last)) |> 
  ggplot(aes(Año, Exportaciones/1000, color = Pais, fill = Pais))+
  theme_bw()+
  scale_color_brewer(palette = "Dark2")+
  scale_x_continuous(breaks = seq(from =1993, to = 2024, by = 2)) +
  geom_line(linewidth = 1)+
  #geom_smooth(aes(fill = Pais, color = Pais), alpha = 0.2, linetype = 3)+
  geom_smooth( alpha = 0.2, linetype = 3)+
  labs(
    x = "",
    y = "",
    fill = "",
    color = "",
    caption = "J.Cornick con base en Data Mexico"
  )+
  theme(legend.position = "bottom")
Figura 4: Mexico, exportaciones totales, países seleccionados, 1993 - 2024
(En miles de millones de US $)
2015-2024
Código
xm |>  
  filter(Pais != "USA" & Pais != "Otros", Año >2014 & Año < 2025) |> 
  mutate(Pais = fct_reorder(Pais, desc(Exportaciones), .fun = last)) |> 
  ggplot(aes(Año, Exportaciones/1000, color = Pais, fill = Pais))+
  theme_bw()+
  scale_color_brewer(palette = "Dark2")+
  scale_x_continuous(breaks = seq(from =2015, to = 2024, by = 1)) +
  geom_line(linewidth = 1)+
  geom_smooth(alpha = 0.2, linetype = 3)+
  labs(
    x = "",
    y = "",
    fill = "",
    color = "",
    caption = "J.Cornick con base de Data Mexico"
  )+
  theme(legend.position = "right")
Figura 5: Mexico, exportaciones totales, países seleccionados, 2011 - 2024
(En miles de millones de US $)

USA y resto del mundo, proporciones

1993-2024
Código
# Primero calculamos porcentajes
xm_percentages <- xm |>
  group_by(Año) |>
  mutate(percent_valor = Exportaciones / sum(Exportaciones, na.rm = TRUE)) |>
  ungroup() |> 
  mutate(Pais = fct_reorder(Pais, desc(percent_valor), .fun = last))

ggplot(xm_percentages, aes(x = Año, y = percent_valor, fill = Pais)) +
  theme_bw() + 
  scale_fill_brewer(palette = "Dark2") + 
  geom_col(position = "stack") + 
  scale_x_continuous(breaks = seq(from = 1995, to = 2025, by = 5)) + 
  scale_y_continuous(
    breaks = seq(0, 1, by = 0.1), 
    labels = scales::percent 
  ) +
  geom_hline(
    yintercept = seq(0.1, 0.9, by = 0.1), 
    color = "white",
    linetype = "dotted",
    linewidth = 0.25
  ) +
  labs(
    x = "",
    y = "",
    fill = "",
    color = "",
    caption = "J.Cornick con base de Data Mexico"
    )+
  theme(legend.position = "bottom")
Figura 6: Mexico, distribucion porcentual de las exportaciones, 1993 - 2024
(Estados Unidos y resto del mundo)
2015-2024
Código
xm_percentages <- xm |>
  filter(Año >2014,Año < 2025) |>
  group_by(Año) |>
  mutate(percent_valor = Exportaciones / sum(Exportaciones, na.rm = TRUE)) |>
  ungroup() |> 
  mutate(Pais = fct_reorder(Pais, desc(percent_valor), .fun = last))

ggplot(xm_percentages, aes(x = Año, y = percent_valor, fill = Pais)) +
  theme_bw() + 
  scale_fill_brewer(palette = "Dark2") + 
  geom_col(position = "stack") + 
  scale_x_continuous(breaks = seq(from = 2015, to = 2025, by = 1)) + 
  scale_y_continuous(
    breaks = seq(0, 1, by = 0.1), 
    labels = scales::percent 
  ) +
  geom_hline(
    yintercept = seq(0.1, 0.9, by = 0.1), # Add horizontal lines for each break
    color = "white",
    linetype = "dotted",
    linewidth = 0.25
  ) +
  labs(
    x = "",
    y = "",
    fill = "",
    color = "",
    caption = "J.Cornick con base de Data Mexico"
      ) +
  theme(legend.position = "bottom")
Figura 7: Mexico, distribucion porcentual de las exportaciones, 1993 - 2024
(Estados Unidos y resto del mundo)

Exportaciones por producto

Como los nombres de los capítulos han sido simplificados, conviene recordar sus definiciones completas

   Chapter 2 Digit ID                   Chapter 2 Digit
1                   1    Los Productos de Origen Animal
2                   2       Productos del Reino Vegetal
3                   3 Animales y Vegetales Bi-Productos
4                   4        Los Productos Alimenticios
5                   5               Productos Minerales
6                   6                Productos Químicos
7                   7               Plásticos y Cauchos
8                   8                Pieles de Animales
9                   9               Productos de Madera
10                 10                Artículos de Papel
11                 11                          Textiles
12                 12              Calzado, y Sombreros
13                 13                  Piedra y Cristal
14                 14                 Metales Preciosos
15                 15                            Rieles
16                 16                          Máquinas
17                 17                        Transporte
18                 18                      Instrumentos
19                 20                           Diverso

Las definiciones detalladas, y las seciones que componen cada una pueden consultarse en Sistema Armonizado.

Todos los productos 1993-2024, valor

Código
xmp |>
  arrange(Trimestre) |>
  mutate(Capítulo = fct_reorder(Capítulo, desc(Exportaciones), .fun = last)) |>
  ggplot(aes(Trimestre, Exportaciones/1000, color = Capítulo)) +
    theme_bw() + # Use a clean black-and-white theme
    scale_fill_brewer(palette = "Dark2") + # Use the specified color palette for fill
    scale_x_yearqtr(
    breaks = seq(min(xmp$Trimestre), max(xmp$Trimestre), by = 2),
    minor_breaks = seq(min(xmp$Trimestre), max(xmp$Trimestre), by = 1),
    format = "%Y") +
    geom_line(linewidth = .75) +
    labs(color = "Capítulo", 
       caption = "J.Cornick con base en Data México")
Figura 8: Mexico, exportaciones trimestrales por producto, 1993 - 2024
(en miles de millones US $)

Todos los productos, porcentajes

Código
prod_percentages <- xmp |>
  mutate(
    Year = as.numeric(format(Trimestre, "%Y")),
    lump_weight = if_else(Year >= 2020, Exportaciones, 0),
    Capítulo = fct_lump_n(
      f = Capítulo,
      n = 7,
      w = lump_weight,
      other_level = "Otros"
    )
  ) |>
  group_by(Year,Trimestre,Capítulo) |> 
  summarise(
    across(where(is.numeric), \(x) sum(x, na.rm = TRUE)),
    .groups = "drop"
  ) |> 
  group_by(Trimestre, Capítulo) |>
  summarise(Exportaciones = sum(Exportaciones, na.rm = TRUE), .groups = "drop") |>
  group_by(Trimestre) |>
  mutate(percent_valor = Exportaciones / sum(Exportaciones, na.rm = TRUE)) |>
  ungroup() |>
  mutate(Capítulo = fct_reorder(Capítulo, Exportaciones, .fun = sum, .desc = TRUE))

Y ahora generamos los gráficos

Código
prod_percentages |> 
ggplot(aes(x = Trimestre, y = percent_valor, fill = Capítulo)) +
  theme_bw() +
  scale_fill_brewer(palette = "Dark2") +
  geom_area(alpha = 0.9) +
  geom_hline(
    yintercept = seq(0.1, 0.9, by = 0.1), 
    color = "white",                      
    linetype = "dotted",
    linewidth = 0.25) +
  scale_y_continuous(
    breaks = seq(0, 1, by = 0.1),
    labels = scales::percent,
    expand = c(0, 0)) +
  scale_x_yearqtr(
    breaks = seq(from = as.yearqtr("1993 Q1"), to = as.yearqtr("2025 Q1"), by = 1),
    expand = c(0,0))+
  labs(
    x = "",
    y = "",
    fill = "",
    caption = "J.Cornick con base de Data Mexico") +
  theme(
    legend.position = "bottom",
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    panel.grid.major.y = element_blank(),
    panel.grid.minor.y = element_blank()
  )
Figura 9: Mexico, distribución porcencual de las exportaciones por producto, 1993 - 2024

Máquinaria, equipo de transporte y minerales 1993-2024

Código
xmp |>
  filter(Capítulo %in% c("Máquinas", "Transporte", "Minerales")) |> 
  arrange(Trimestre) |>
  mutate(Capítulo = fct_reorder(Capítulo, desc(Exportaciones), .fun = last)) |>
  ggplot(aes(Trimestre, Exportaciones/1000, color = Capítulo)) +
    theme_bw() + 
    scale_fill_brewer(palette = "Dark2") + 
    scale_x_yearqtr(
      breaks = seq(min(xmp$Trimestre), max(xmp$Trimestre), by = 2),
      minor_breaks = seq(min(xmp$Trimestre), max(xmp$Trimestre), by = 1),
      format = "%Y" 
    )  + 
    geom_line(linewidth = 0.75) +
    labs(color = "Capítulo", 
         caption = "J.Cornick con base en Data México")
Figura 10: Mexico, exportaciones trimestrales de Máquinas, Transporte y Minerales, 1993 - 2024
(en miles de millones US $)

Máquinaria, equipo de transporte y minerales 2015-2024

Código
xmp |>
  filter(Capítulo %in% c("Máquinas", "Transporte", "Minerales")) |> 
  filter(Trimestre > 2014.75) |> 
  arrange(Trimestre) |>
  mutate(Capítulo = fct_reorder(Capítulo, desc(Exportaciones), .fun = last)) |>
  ggplot(aes(Trimestre, Exportaciones/1000, color = Capítulo, fill = Capítulo)) +
    theme_bw() + 
    scale_color_brewer(palette = "Dark2") + 
    scale_fill_brewer(palette = "Dark2")+
    scale_x_yearqtr(
      breaks = seq(min(xmp$Trimestre), max(xmp$Trimestre), by = 2),
      minor_breaks = seq(min(xmp$Trimestre), max(xmp$Trimestre), by = 1),
      format = "%Y" 
      )  + 
    geom_line(linewidth = 0.75) +
    geom_smooth(alpha = 0.2, linetype = 3) +
    labs(
      color = "Capítulo", 
      caption = "J.Cornick con base en Data México",
      x = "",
      y = "Miles de millones, US ") +
    guides(fill = "none")
Figura 11: Mexico, exportaciones trimestrales de Máquinas, Transporte y Minerales, 2015-1 - 2025-1
(en miles de millones US $)

Top 5 excluyendo máquinaria, equipo de transporte, minerales y “otros”

Código
xmp |>
  filter(Capítulo %in% c("Instrumentos", "Alimentos", "Vegetales", "Rieles", "Plásticos")) |> 
  arrange(Trimestre) |>
  mutate(Capítulo = fct_reorder(Capítulo, desc(Exportaciones), .fun = last)) |>
  ggplot(aes(Trimestre, Exportaciones/1000, color = Capítulo)) +
  theme_bw() + 
  scale_fill_brewer(palette = "Dark2") + 
  scale_x_yearqtr(
    breaks = seq(min(xmp$Trimestre), max(xmp$Trimestre), by = 2),
    minor_breaks = seq(min(xmp$Trimestre), max(xmp$Trimestre), by = 1),
    format = "%Y"  
    )  + 
  geom_line(linewidth = .75) +
  labs(color = "Capítulo", 
       caption = "J.Cornick con base en Data México",
       x = "",
       y = "Miles de millones, US $")
Figura 12: Mexico, exportaciones trimestrales otros productos, 1993 - 2024
(en miles de millones US $)

Exportaciones a USA por producto

Todos los productos

Código
xmusa |> 
  filter(Pais == "USA",Año < "2025") |> 
  mutate(Capitulo = fct_reorder(Capitulo, desc(Exportaciones), .fun = last,.na_rm = TRUE)) |> 
  ggplot(
    aes(Año,Exportaciones/1000000, color = Capitulo)
    ) + 
    theme_bw(
    )+
    scale_fill_brewer(
      palette = "Dark2"
    ) +
    theme(
      axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)
    ) +
    scale_x_continuous(
      breaks = seq(from = 2006, to = 2024, by = 1)
    ) +
    geom_line(
      linewidth = 1
    ) +
    labs(
      x = "",
      y = "Miles de millones de US$",
      fill = "",
      color = "",
      caption = "J.Cornick con base en Data Mexico",
    ) +
    theme(legend.position = "bottom")
Warning: Removed 14 rows containing missing values or values outside the scale range
(`geom_line()`).
Figura 13: Mexico, exportaciones a Estados Unidos
(en miles de millones US $)

Dadas las diferencias en escala, parece razonable graficar Maquinaria y Equipo de Transporte por separado.

Maquinaria y equipo de transporte

Código
xmusa |> 
  filter(Pais == "USA",Capitulo %in% c("Maquinas", "Transporte"), Año < "2025") |> 
  mutate(Capitulo = fct_reorder(Capitulo, desc(Exportaciones), .fun = last)) |> 
  ggplot(
    aes(Año,Exportaciones/1000000, color = Capitulo)
    ) + 
    theme_bw(
    )+
    scale_fill_brewer(
      palette = "Dark2"
    ) +
    theme(
      axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)
    ) +
    scale_x_continuous(
      breaks = seq(from = 2006, to = 2024, by = 1)
    ) +
    geom_line(
      linewidth = 1
    ) +
    geom_smooth(
      data = . %>% filter(Año < 2018),
      method = "lm",
      se = FALSE,
      linetype = 3
    ) +
    geom_smooth(
    data = . %>% filter(Año > 2016),
    method = "lm",
    se = FALSE,
    linetype = 3
    ) +
    labs(
      x = "",
      y = "Miles de millones de US$",
      fill = "",
      color = "",
      caption = "J.Cornick con base en Data Mexico",
    ) +
  theme(legend.position = "bottom")
Figura 14: Mexico, exportaciones de Maquinaria y Transporte Estados Unidos
(en miles de millones US $)

Instrumentos, vegetales, metales, plásticos,alimentos y minerales

Código
xmusa |> 
  filter(Pais == "USA",Capitulo %in% c("Instrumentos", "Vegetales", "Metales", "Plasticos", "Alimentos", "Minerales"), Año < "2025") |> 
  mutate(Capitulo = fct_reorder(Capitulo, desc(Exportaciones), .fun = last)) |> 
  ggplot(
    aes(Año,Exportaciones/1000000, color = Capitulo)
    ) + 
    theme_bw(
    )+
    scale_fill_brewer(
      palette = "Dark2"
    ) +
    theme(
      axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)
    ) +
    scale_x_continuous(
      breaks = seq(from = 2006, to = 2024, by = 1)
    ) +
    geom_line(
      linewidth = 1
    ) +
    geom_smooth(
      data = . %>% filter(Año < 2018),
      method = "lm",
      se = FALSE,
      linetype = 3
    ) +
    geom_smooth(
    data = . %>% filter(Año > 2016),
    method = "lm",
    se = FALSE,
    linetype = 3
    ) +
    labs(
      x = "",
      y = "Miles de millones de US$",
      fill = "",
      color = "",
      caption = "J.Cornick con base en Data Mexico",
    ) +
  theme(legend.position = "bottom")
Figura 15: Mexico, principales otras exportaciones
(en miles de millones US $)

Los demás productos

Código
xmusa |> 
  filter(Pais == "USA", !(Capitulo %in% c("Maquinas", "Transporte","Instrumentos", "Vegetales", "Metales", "Plásticos", "Alimentos", "Minerales", "Otros")),
         Año < "2025") |> 
  mutate(Capitulo = fct_reorder(Capitulo, desc(Exportaciones), .fun = last)) |> 
  ggplot(
    aes(Año,Exportaciones/1000000, color = Capitulo)
    ) + 
    theme_bw(
    )+
    scale_fill_brewer(
      palette = "Dark2"
    ) +
    theme(
      axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)
    ) +
    scale_x_continuous(
      breaks = seq(from = 2006, to = 2024, by = 1)
    ) +
    geom_line(
      linewidth = 1
    ) +
    geom_smooth(
      data = . %>% filter(Año < 2018),
      method = "lm",
      se = FALSE,
      linetype = 3
    ) +
    geom_smooth(
    data = . %>% filter(Año > 2016),
    method = "lm",
    se = FALSE,
    linetype = 3
    ) +
    labs(
      x = "",
      y = "Miles de millones de US$",
      fill = "",
      color = "",
      caption = "J.Cornick con base en Data Mexico",
    ) +
  theme(legend.position = "bottom")
Warning: There was 1 warning in `mutate()`.
ℹ In argument: `Capitulo = fct_reorder(Capitulo, desc(Exportaciones), .fun =
  last)`.
Caused by warning:
! `fct_reorder()` removing 16 missing values.
ℹ Use `.na_rm = TRUE` to silence this message.
ℹ Use `.na_rm = FALSE` to preserve NAs.
Warning: Removed 9 rows containing non-finite outside the scale range
(`stat_smooth()`).
Warning: Removed 8 rows containing non-finite outside the scale range
(`stat_smooth()`).
Warning: Removed 14 rows containing missing values or values outside the scale range
(`geom_line()`).
Figura 16: Mexico, otras exportaciones
(en miles de millones US $)

Exportaciones por estado

Todos los estados

Código
xmest |> select(-Importaciones) |> 
  mutate(Estado = fct_reorder(Estado, desc(Exportaciones), .fun = last)) |>
  ggplot(aes(IDTrim, Exportaciones, color = Estado))+
  theme_bw()+
  scale_fill_brewer(
      palette = "Dark2"
  ) +
  geom_line(
    linewidth = 0.75
  )+
  theme(
      axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)
    ) +
    scale_x_continuous(
      breaks = seq(from = 20061, to = 20241, by = 10)
    ) +
   labs(
      x = "",
      y = "Miles de millones de US$",
      fill = "",
      color = "",
      caption = "J.Cornick con base en Data Mexico",
    ) +
  theme(legend.position = "bottom")
Figura 17: Mexico,exportaciones por Estado
(en miles de millones US $)

Top 7 estados exportadores

Código
xmest |> select(-Importaciones) |> 
  filter(Estado %in% c("Chihuahua", "Ciudad de México", "Nuevo León",
                        "Baja California", "Jalisco", "Tamaulipas"),
         IDTrim < 20251
         ) |> 
  mutate(Estado = fct_reorder(Estado, desc(Exportaciones), .fun = last)
         ) |>
  ggplot(aes(IDTrim, Exportaciones/1000, color = Estado))+
    theme_bw()+
    scale_fill_brewer(
        palette = "Paired"
    ) +
    geom_line(
      linewidth = 0.75
    )+
    theme(
        axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)
      ) +
      scale_x_continuous(
        breaks = seq(from = 20061, to = 20241, by = 10)
      ) +
     labs(
        x = "",
        y = "Exportaciones, miles de millones US $",
        fill = "",
        color = "",
        caption = "J.Cornick con base en Data Mexico",
      ) 
Figura 18: Mexico,exportaciones por Estado, top 7
(en miles de millones US $)

Top 8 a 14 Estados exportadores

Código
xmest |> select(-Importaciones) |> 
  filter(Estado %in% c("Coahuila de Zaragoza","Sonora", "Estado de México", "Guanajuato", 
                       "Querétaro", "Puebla", "San Luis Potosí"),
         IDTrim < 20251
         ) |> 
  mutate(Estado = fct_reorder(Estado, desc(Exportaciones), .fun = last)
         ) |>
  ggplot(aes(IDTrim, Exportaciones/1000, color = Estado))+
    theme_bw()+
    scale_fill_brewer(
        palette = "Dark2"
    ) +
    geom_line(
      linewidth = 0.75
    )+
    theme(
        axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)
      ) +
      scale_x_continuous(
        breaks = seq(from = 20061, to = 20241, by = 10)
      ) +
     labs(
        x = "",
        y = "",
        fill = "",
        color = "",
        caption = "J.Cornick con base en Data Mexico",
      )
Figura 19: Mexico,exportaciones por Estado, 7 siguientes
(en miles de millones US $)

Los demás

Código
xmest |> select(-Importaciones) |> 
  filter(!(Estado %in% c("Chihuahua", "Ciudad de México", "Nuevo León","Baja California", 
                         "Jalisco", "Tamaulipas", "Coahuila de Zaragoza","Sonora", 
                         "Estado de México", "Guanajuato", "Querétaro", "Puebla", "San Luis Potosí", 
                         "No Informado")),
         IDTrim < 20091
         ) |> 
  mutate(Estado = fct_reorder(Estado, desc(Exportaciones), .fun = last)
         ) |>
  ggplot(aes(IDTrim, Exportaciones/1000, color = Estado)) + 
    theme_bw()+
    scale_fill_brewer(
        palette = "Dark2"
        ) + 
    geom_line(
      linewidth = 0.75
      ) +
    theme(
      axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)
      ) +
    scale_x_continuous(
        breaks = seq(from = 20061, to = 20241, by = 10)
      ) +
    labs(
        x = "",
        y = "",
        fill = "",
        color = "",
        caption = "J.Cornick con base en Data Mexico",
      ) +
    theme(legend.position = "right")
Figura 20: Mexico,exportaciones por Estado, 6 siguientes
(en miles de millones US $)

Importaciones

De USA

1993-2024

Código
xm |>  
  filter(Pais == "USA", Año < 2025) |> 
  ggplot(aes(Año, Importaciones/1000))+
  theme_bw()+
  scale_color_brewer(palette = "Dark2")+
  scale_x_continuous(breaks = seq(from =1993, to = 2024, by = 2)) +
  geom_line(linewidth = 1, color = "steelblue4")+
  geom_smooth(color = "steelblue1", 
              fill = "steelblue1", alpha = 0.2)+
  labs(
    x = "",
    y = "Importaciones de USA, miles de millones de US $", 
    caption = "J.Cornick con base en Data Mexico "
  )
Figura 21: Mexico, importaciones totales de USA, 1993 - 2024
(En miles de millones de US $)

2015-2024

Código
xm |>  
  filter(Pais == "USA", Año > 2014 & Año < 2025) |> 
  ggplot(aes(Año, Importaciones/1000))+
  theme_bw()+
  scale_color_brewer(palette = "Dark2")+
  scale_x_continuous(breaks = seq(from =2015, to = 2024, by = 1)) +
  geom_line(linewidth = 1, color = "steelblue4")+
  geom_smooth(color = "steelblue1", 
              fill = "steelblue1", alpha = 0.4)+
  labs(
    x = "",
    y = "Importaciones de USA, miles de millones de US $",
    caption = "J.Cornick con base en Data Mexico"
  )+
  theme(legend.position = "bottom")
Figura 22: Mexico, importaciones totales de USA, 2011 - 2024
(En miles de millones de US $)

Otros socios comerciales

1993-2024

Código
xm |>  
  filter(Pais != "USA" & Pais != "Otros", Año < 2025) |> 
  mutate(Pais = fct_reorder(Pais, desc(Importaciones), .fun = last)) |>
  ggplot(aes(Año, Importaciones/1000, color = Pais))+
  theme_bw()+
  scale_color_brewer(palette = "Dark2")+
  scale_x_continuous(breaks = seq(from =1993, to = 2024, by = 2)) +
  geom_line(linewidth = 1)+
  geom_smooth(aes(fill = Pais), alpha = 0.2, linetype = 3)+
  labs(
    x = "",
    y = "Importaciones, miles de millones US $",
    fill = "",
    color = "",
    caption = "J.Cornick con base en Data Mexico"
  )+
  theme(legend.position = "right")
Figura 23: Mexico, importaciones totales, países seleccionados, 1993 - 2024
(En miles de millones de US $)

2015-2024

Código
xm |>  
  filter(Pais != "USA" & Pais != "Otros", Año >2014 & Año < 2025) |> 
  mutate(Pais = fct_reorder(Pais, desc(Importaciones), .fun = last)) |>
  ggplot(aes(Año, Importaciones/1000, color = Pais))+
  theme_bw()+
  scale_color_brewer(palette = "Paired")+
  scale_x_continuous(breaks = seq(from =2015, to = 2024, by = 1)) +
  geom_line(linewidth = 1)+
  geom_smooth(aes(fill = Pais), alpha = 0.2, linetype = 3)+
  labs(
    x = "",
    y = "Importaciones, miles de millones de US $",
    fill = "",
    color = "",
    caption = "J.Cornick con base de Data Mexico"
  )+
  theme(legend.position = "right")
Figura 24: Mexico, importacionones totales, países seleccionados, 2011 - 2024
(En miles de millones de US $)

USA y resto del mundo, proporciones

1993-2024.

Código
xm_percentages <- xm |>
  group_by(Año) |>
  mutate(percent_valor = Importaciones / sum(Importaciones, na.rm = TRUE)) |>
  ungroup() |> 
  mutate(Pais = fct_reorder(Pais, desc(percent_valor), .fun = last))

ggplot(xm_percentages, aes(x = Año, y = percent_valor, fill = Pais)) +
  theme_bw() + # Use a clean black-and-white theme
  scale_fill_brewer(palette = "Dark2") + # Use the specified color palette for fill
  geom_col(position = "stack") + # Stacks the pre-calculated percentages
  scale_x_continuous(breaks = seq(from = 1993, to = 2025, by = 2)) + # Display labels every 5 years
  scale_y_continuous(
    breaks = seq(0, 1, by = 0.1), # Set breaks at 10% increments
    labels = scales::percent # Formats the y-axis as percentages
  ) +
  geom_hline(
    yintercept = seq(0.1, 0.9, by = 0.1), # Add horizontal lines for each break
    color = "white",
    linetype = "dotted",
    linewidth = 0.25
  ) +
  labs(
    x = "",
    y = "Origen de las importaciones",
    fill = "",
    color = "",
    caption = "J.Cornick con base de Data Mexico"
    )+
  theme(legend.position = "bottom")
Figura 25: Mexico, distribucion porcentual de las importaciones, 1993 - 2024

2015-2024

Código
xm_percentages <- xm |>
  filter( Año >2014 & Año < 2025) |>
  group_by(Año) |>
  mutate(percent_valor = Importaciones / sum(Importaciones, na.rm = TRUE)) |>
  ungroup() |> 
  mutate(Pais = fct_reorder(Pais, desc(percent_valor), .fun = last))

ggplot(xm_percentages, aes(x = Año, y = percent_valor, fill = Pais)) +
  theme_bw() + # Use a clean black-and-white theme
  scale_fill_brewer(palette = "Dark2") + # Use the specified color palette for fill
  geom_col(position = "stack") + # Stacks the pre-calculated percentages
  scale_x_continuous(breaks = seq(from = 2015, to = 2025, by = 1)) + # Display labels every 5 years
  scale_y_continuous(
    breaks = seq(0, 1, by = 0.1), # Set breaks at 10% increments
    labels = scales::percent # Formats the y-axis as percentages
  ) +
  geom_hline(
    yintercept = seq(0.1, 0.9, by = 0.1), # Add horizontal lines for each break
    color = "white",
    linetype = "dotted",
    linewidth = 0.25
  ) +
  labs(
    x = "",
    y = "",
    fill = "",
    color = "",
    caption = "J.Cornick con base de Data Mexico"
      ) +
  theme(legend.position = "bottom")
Figura 26: Mexico, distribucion porcentual de las importaciones, 1993 - 2024

Inversión extranjera directa

Total USA

Código
xm |> 
  arrange(Año) |> 
  filter(Pais == "USA") |> 
  ggplot(aes(Año,Inversion/1000))+
  geom_line(linewidth = 1, color = "steelblue4")+
   geom_smooth(
    data = . %>% filter(Año < 2018),
    method = "lm",
    se = TRUE,
    fill = "steelblue1",
    alpha = 0.2,
    linetype = 3
  ) +
  geom_smooth(
    data = . %>% filter(Año > 2016),
    #aes(fill = "steelblue1", alpha = 0.4),
    method = "lm",
    se = TRUE,
    fill = "steelblue1",
    alpha = 0.2,
    linetype = 3
  )+
  scale_x_continuous(breaks = seq(from = 1999, to = 2024, by = 1)) +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)
  )+
  labs(
    x = "",
    y = "Miles de millones de US $",
    caption = "J.Cornick con base en Data México"
  )
Figura 27: Mexico, IED de USA, 2000-2024
(en miles de millones US $)

Gráfico inversión USA, promedios móviles 3 años

Código
xm |> 
  arrange(Año) |> 
  mutate(
    Inv3 = rollmean(Inversion, k = 3, fill = NA, align = "center")
    ) |> 
  filter(Pais == "USA") |> 
  ggplot(aes(Año,Inv3/1000)) +
    geom_line(linewidth = 1, color = "steelblue4") +
    theme_bw()+
    geom_smooth(
      data = . %>% filter(Año <= 2018),
      method = "lm",
      se = TRUE,
      fill = "steelblue1",
      alpha = 0.2,
      linetype = 3
    ) +
    geom_smooth(
      data = . %>% filter(Año > 2017),
      method = "lm",
      se = TRUE,
      fill = "steelblue1",
      alpha = 0.2,
      linetype = 3
    ) +
    scale_x_continuous(breaks = seq(from = 1999, to = 2024, by = 1)) +
    theme(
      axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)
    )+
    labs(
      x = "",
      y = "promedio movil 3 a;os",
      caption = "J.Cornick con base en Data Mexico"
    )
Warning: Removed 1 row containing non-finite outside the scale range
(`stat_smooth()`).
Warning: Removed 1 row containing missing values or values outside the scale range
(`geom_line()`).
Figura 28: Mexico, IED de USA, 2000-2024, promedio móvil 3 años
(en miles de millones US $)

Japón, Alemania y Canadá.

Código
xm |> 
  arrange(Año) |> 
  filter(Pais %in% c("Japon", "Alemania", "Canada")) |> 
  mutate(Pais = fct_reorder(Pais, desc(Inversion), .fun = last)) |>
  ggplot(
    aes(Año,Inversion/1000, color = Pais)
    ) +
    theme_bw()+
    scale_color_brewer(palette = "Dark2")+
    geom_line(linewidth = 1)+
    geom_smooth(
      data = . %>% filter(Año <= 2018),
      method = "lm",
      se = FALSE,
      alpha = 0.2,
      linetype = 3
    ) +
    geom_smooth(
      data = . %>% filter(Año > 2017),
      method = "lm",
      se = FALSE,
      alpha = 0.2,
      linetype = 3
    ) +
    scale_x_continuous(breaks = seq(from = 1999, to = 2024, by = 1)) +
    theme(
      axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)
      ) +
    labs(
      x = "",
      y = "Miles de millones de US $",
      fill = "",
      color = "",
      caption = "J.Cornick con base en Data Mexico"
      ) 
Figura 29: Mexico, IED de Japón, Alemania y Canadá, 2000-2024
(en miles de millones US $)

Otros países

Código
xm |> 
  arrange(Año) |> 
  filter(!(Pais %in% c("Japon", "Alemania", "Canada", "USA", "Otros"))) |> 
  mutate(Pais = fct_reorder(Pais, desc(Inversion), .fun = last)) |>
  ggplot(
    aes(Año,Inversion/1000, color = Pais)
    ) +
    theme_bw()+
    scale_color_brewer(palette = "Dark2")+
    geom_line(linewidth = 1)+
    geom_smooth(
      data = . %>% filter(Año <= 2018),
      method = "lm",
      se = FALSE,
      alpha = 0.2,
      linetype = 3
    ) +
    geom_smooth(
      data = . %>% filter(Año > 2017),
      method = "lm",
      se = FALSE,
      alpha = 0.2,
      linetype = 3
    ) +
    scale_x_continuous(breaks = seq(from = 1999, to = 2024, by = 1)) +
    theme(
      axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)
      ) +
    labs(
      x = "",
      y = "Miles de millones de US $",
      fill = "",
      color = "",
      caption = "J.Cornick con base en Data Mexico"
      ) #+
     #theme(legend.position = "bottom")
Figura 30: Mexico, IED, paises selectos, 2000-2024
(en miles de millones US $)
Código
xm |> 
  arrange(Año) |> 
  filter(!(Pais %in% c("Japon", "Alemania", "Canada", "USA", "Otros", "Espana", "Belgica"))) |> 
  mutate(Pais = fct_reorder(Pais, desc(Inversion), .fun = last)) |>
  ggplot(
    aes(Año,Inversion/1000, color = Pais)
    ) +
    theme_bw()+
    scale_color_brewer(palette = "Dark2")+
    geom_line(linewidth = 1)+
    geom_smooth(
      data = . %>% filter(Año <= 2018),
      method = "lm",
      se = FALSE,
      alpha = 0.2,
      linetype = 3
    ) +
    geom_smooth(
      data = . %>% filter(Año > 2017),
      method = "lm",
      se = FALSE,
      alpha = 0.2,
      linetype = 3
    ) +
    scale_x_continuous(breaks = seq(from = 1999, to = 2024, by = 1)) +
    theme(
      axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)
      ) +
    labs(
      x = "",
      y = "Miles de millones de US $",
      fill = "",
      color = "",
      caption = "J.Cornick con base en Data Mexico"
      ) #+
     #theme(legend.position = "bottom")
Figura 31: Mexico, Países selectos 2,2000-2024
(en miles de millones US $)

Empleo y otros datos IMMEX

Creación de vectores para selección de Estados. Para seleccionar ciudades simplemente elegiremos los niveles de entidad aque no se encuentren en Estados

Datos nacionales

Exportaciones (millones en pesos)

Código
immex |> 
  filter(entidad == "TOTAL") |> 
  ggplot(
    aes(Fecha, Exportaciones/1000000)
    ) +
  theme_bw() +geom_line(linewidth = 1, color = "steelblue4") +
  geom_smooth(color = "steelblue1", fill = "steelblue1", alpha = 0.4)+
  geom_line() +
  scale_x_date(
    date_breaks = "1 year",
    date_labels = "%Y",
    expand = c(0,0)
  )+
  labs(
    title = "México: exportaciones del régimen IMMEX, 2007-2025",
    subtitle = "en millones de pesos",
    x = "",
    y = "Exportaciones",
    caption = "J.Cornick con base en INEGI"
  )
Figura 32: Mexico, exportaciones del régimen IMMEX, 2007-2025 <> En millones de pesos

Trabajadores

Código
immex |> 
  filter(entidad == "TOTAL") |> 
  ggplot(
    aes(Fecha, Trabajadores/1000000)
    ) +
  theme_bw() +geom_line(linewidth = 1, color = "steelblue4") +
  geom_smooth(color = "steelblue1", fill = "steelblue1", alpha = 0.4)+
  geom_line() +
  scale_x_date(
    date_breaks = "1 year",
    date_labels = "%Y",
    expand = c(0,0)
  )+
  labs(
    title = "México: trabajadores en empresas IMMEX, 2007-2025",
    subtitle = "en millones",
    x = "",
    y = "Trabajadores",
    caption = "J.Cornick con base en INEGI"
  )
Figura 33: Mexico, trabajadores en empresas IMMEX
En millones

Empresas

Código
immex |> 
  filter(entidad == "TOTAL") |> 
  ggplot(
    aes(Fecha, Establecimientos)
    ) +
  theme_bw() +geom_line(linewidth = 1, color = "steelblue4") +
  geom_smooth(color = "steelblue1", fill = "steelblue1", alpha = 0.4)+
  geom_line() +
  scale_x_date(
    date_breaks = "1 year",
    date_labels = "%Y",
    expand = c(0,0)
  )+
  labs(
    title = "México: establecimientos en régimen IMMEX, 2007-2025",
    subtitle = "en millones",
    x = "",
    y = "Establecimientos",
    caption = "J.Cornick con base en INEGI"
  )
Figura 34: Mexico, establecimientos en régimen IMMEX, 2007-2025

Remuneraciones

Código
immex |> 
  filter(entidad == "TOTAL") |> 
  ggplot(
    aes(Fecha, Remuneraciones/1000)
    ) +
  theme_bw() +geom_line(linewidth = 1, color = "steelblue4") +
  geom_smooth(color = "steelblue1", fill = "steelblue1", alpha = 0.4)+
  geom_line() +
  scale_x_date(
    date_breaks = "1 year",
    date_labels = "%Y",
    expand = c(0,0)
  )+
  labs(
    title = "México: remuneraciones pagadas a trabajadores del régimen IMMEX, 2007-2025",
    subtitle = "en millones de pesos",
    x = "",
    y = "Remuneraciones",
    caption = "J.Cornick con base en INEGI"
  )
Figura 35: Mexico, remuneracioes pagadas al personal del régimen IMMEX, 2007-2025 <> En millones de pesos

Remuneraciones promedio

Código
immex |> 
  filter(entidad == "TOTAL") |> 
  mutate(RemProm = Remuneraciones / Trabajadores) |> 
  ggplot(
    aes(Fecha, RemProm)
    ) +
  theme_bw() +geom_line(linewidth = 1, color = "steelblue4") +
  geom_smooth(color = "steelblue1", fill = "steelblue1", alpha = 0.4)+
  geom_line() +
  scale_x_date(
    date_breaks = "1 year",
    date_labels = "%Y",
    expand = c(0,0)
  )+
  labs(
    title = "México: remuneraciones promedio del régimen IMMEX, 2007-2025",
    subtitle = "en miles de pesos",
    x = "",
    y = "Remuneraciones",
    caption = "J.Cornick con base en INEGI"
  )
Figura 36: Mexico, remuneracioes promedio, del régimen IMMEX, 2007-2025 <> En miles de pesos

Datos estatales

Como primer paso, identificamos los estados cuyas exportaciones son más importantes

mainE <- immex |> 
  filter(entidad %in% Estados, entidad != "TOTAL") |> 
  mutate(weight = if_else(Fecha > "2020-12-01", Exportaciones,0),
         entidad = fct_lump_n(
           f = entidad,
           n = 8,
           w = weight,
           other_level = "Otros"  # todas las otras entidades tiene ahora el nombre "otros", pero no han sido colapsadas en un nueo factor, lo que crea filas duplicadas en el data fraem
         )) |> 
  group_by(entidad, Fecha) |> 
  summarise(
    # Como solo las filas de Otros están duplicadas, este código las suma.  En los demás casos, la suma de una fila es el valor de la fila
    across(where(is.numeric), \(x) sum(x, na.rm = TRUE)),
    .groups = "drop" # Ungroup after summarising
  ) |>
  mutate(entidad = fct_reorder(entidad, desc(Exportaciones), .fun = last))

Traducimos los datos a porcentajes y los graficamos

Código
mainE <- mainE |> 
  group_by(Fecha) |> 
  mutate(PorcEx = Exportaciones/sum(Exportaciones)) |> 
  ungroup()

mainE |> 
  mutate(entidad = fct_reorder(entidad, desc(PorcEx), .fun = last)) |>
  ggplot(aes(Fecha,PorcEx, color = entidad,fill = entidad)) +
  theme_bw() +
  geom_col(position = "stack") +
  geom_hline(
    yintercept = seq(0.1, 0.9, by = 0.1), 
    color = "white",                      
    linetype = "dotted",
    linewidth = 0.25) +
  scale_y_continuous(
    breaks = seq(0, 1, by = 0.1),
    labels = scales::percent,
    expand = c(0, 0)) +
  scale_color_brewer(palette = "Paired") +
  scale_fill_brewer(palette = "Paired") +
  scale_x_date(
    date_breaks = "2 year",
    date_labels = "%Y",
    expand = c(0,0))
Figura 37: Exportaciones IMMEX por Estado, 2007-2025 <> En porcentajes

Los ocho principales exportadores representan el 80% del total de las exportaciones bajo el régimen IMMEX, por lo que el grupo residual, Otros, se excluye en el los demás gráficos de esta sección

Exportaciones por estado

Código
mainE |>
  filter(entidad != "Otros") |> 
  mutate(entidad = fct_reorder(entidad, desc(PorcEx), .fun = last)) |>
  ggplot(aes(Fecha, Exportaciones/1000, color = entidad)) +
  theme_bw() +
  scale_color_brewer(palette = "Paired") +
  geom_line() +
  scale_x_date(
    date_breaks = "2 year",
    date_labels = "%Y",
    expand = c(0,0)) +
  labs(
    x = "",
    y = "Exportaciones, MM de pesos",
    color = "",
    caption = "j.Cornick con base en INEGI"
  )
Figura 38: Exportaciones IMMEX por Estado, 2007-2025 <> En millones de pesos
Código
mainE |>
  filter(entidad != "Otros") |> 
  mutate(entidad = fct_reorder(entidad, desc(PorcEx), .fun = last)) |>
  ggplot(aes(Fecha, PorcEx, color = entidad, fill = entidad)) +
  theme_bw() +
  scale_color_brewer(palette = "Paired") +
  scale_fill_brewer(palette = "Paired") +
  geom_col(position = "fill") +
  scale_x_date(
    date_breaks = "2 year",
    date_labels = "%Y",
    expand = c(0,0)) +
  scale_y_continuous(expand = c(0,0))+
  labs(
    x = "",
    y = "Porcentaje de las exportaciones",
    color = "",
    fill = "",
    caption = "j.Cornick con base en INEGI",
  )
Figura 39: Exportaciones IMMEX por Estado, 2007-2025 v2 <> Distribucipon

Trabajadores por estado

Código
mainE |>
  filter(entidad != "Otros") |> 
  mutate(entidad = fct_reorder(entidad, Trabajadores, .fun = last, .desc = TRUE)) |>
  ggplot(aes(Fecha, Trabajadores)) +
  theme_bw() +
  scale_color_brewer(palette = "Paired") +
  geom_line(aes(color=entidad)) +
  #geom_point(aes(shape = entidad), size = 0.75)+
  scale_x_date(
    date_breaks = "2 year",
    date_labels = "%Y",
    expand = c(0,0)) +
  labs(
    x = "",
    y = "",
    color = "",
    shape = "",
    caption = "j.Cornick con base en INEGI"
  )
Figura 40: Trabajadores IMMEX por Estado, 2007-2025

Traducimos los datos a porcentajes y los graficamos

Nótese que para generar gráficos con la distribución porcentual de una variable podemos usar dos métodos. Si usamos geom_col(position = fill) los porcentajes son calculados automáticamente por ggplot. Esto es muy conveniente, pero tienen al desventaja de que los datos en términos porcentuales no quedan incorporados en la base de datos. En el código que sigue, por lo tanto, ilustramos un método alternativo: primero se calculan explícitamente los porcentajes, y luego se procede a graficar. Aunque en este caso concreto no se han incorporado estos datos a la base de dato, sería muy fácil hacerlo si estuviésemos interesados en hacerlo.

Código
mainE |> 
  filter(entidad != "Otros") |> 
  group_by(Fecha) |> 
  mutate(PorcTrab = Trabajadores/sum(Trabajadores)) |> 
  ungroup() |> 
  mutate(entidad = fct_reorder(entidad, desc(PorcTrab), .fun = last)) |>
  ggplot(aes(Fecha,PorcTrab, color = entidad,fill = entidad)) +
  theme_bw() +
  geom_col(position = "stack") +
  geom_hline(
    yintercept = seq(0.1, 0.9, by = 0.1), 
    color = "white",                      
    linetype = "dotted",
    linewidth = 0.25) +
  scale_y_continuous(
    breaks = seq(0, 1, by = 0.1),
    labels = scales::percent,
    expand = c(0, 0)) +
  scale_color_brewer(palette = "Paired") +
  scale_fill_brewer(palette = "Paired") +
  scale_x_date(
    date_breaks = "2 year",
    date_labels = "%Y",
    expand = c(0,0)) +
  labs(
    x = "",
    y = "Distribución Trabajadores IMMEX por Estado",
    fill = "",
    color = "",
    caption = "J.Cornick con base en INEGI"
  )
Figura 41: Trabajadores IMMEX por Estado, 2007-2025 <> En porcentajes

Empresas por estado

Código
mainE |>
  filter(entidad != "Otros") |> 
  ggplot(aes(Fecha, Establecimientos, color = entidad)) +
  theme_bw() +
  scale_color_brewer(palette = "Paired") +
  geom_line() +
  scale_x_date(
    date_breaks = "2 year",
    date_labels = "%Y",
    expand = c(0,0)) +
  labs(
    x = "",
    y = "Establecimientos",
    color = "",
    caption = "j.Cornick con base en INEGI"
  )
Figura 42: Empresas IMMEX por Estado, 2007-2025 <> En millones de pesos

Traducimos los datos a porcentajes y los graficamos

Código
mainE |> 
  filter(entidad != "Otros") |> 
  group_by(Fecha) |> 
  mutate(PorcEmp = Establecimientos/sum(Establecimientos)) |> 
  ungroup() |> 
  mutate(entidad = fct_reorder(entidad, desc(PorcEmp), .fun = last)) |>
  ggplot(aes(Fecha,PorcEmp, color = entidad,fill = entidad)) +
  theme_bw() +
  geom_col(position = "stack") +
  geom_hline(
    yintercept = seq(0.1, 0.9, by = 0.1), 
    color = "white",                      
    linetype = "dotted",
    linewidth = 0.25) +
  scale_y_continuous(
    breaks = seq(0, 1, by = 0.1),
    labels = scales::percent,
    expand = c(0, 0)) +
  scale_color_brewer(palette = "Dark2") +
  scale_fill_brewer(palette = "Dark2") +
  scale_x_date(
    date_breaks = "2 year",
    date_labels = "%Y",
    expand = c(0,0)) +
  labs(
    x = "",
    y = "Distribución establecimiewntos",
    fill = "",
    color = "",
    caption = "J.Cornick con base en INEGI"
  )
Figura 43: Empresas IMMEX por Estado, 2007-2025 <> En porcentajes
Código
mainE |> 
  filter(entidad != "Otros") |> 
  mutate(entidad = fct_reorder(entidad, desc(Remuneraciones), .fun = last)) |>
  ggplot(
    aes(Fecha, Remuneraciones/1000, color = entidad)
    ) +
  theme_bw() +
  scale_color_brewer(palette = "Paired") +
  geom_line() +
  scale_x_date(
    date_breaks = "1 year",
    date_labels = "%Y",
    expand = c(0,0)
  )+
  labs(
    x = "",
    y = "Remuneraciones",
    caption = "J.Cornick con base en INEGI"
  )
Figura 44: Remuneracioes pagadas al personal del régimen IMMEX
por Estado, 2007-2025 <> En millones de pesos

Remuneraciones promedio

Código
mainE |> 
  filter(entidad != "Otros") |> 
  mutate(RemProm = Remuneraciones / Trabajadores) |> 
  mutate(entidad = fct_reorder(entidad, desc(RemProm), .fun = last)) |>
  ggplot(aes(Fecha, RemProm, color = entidad)) +
  theme_bw() +
  geom_line() +
  scale_color_brewer(palette = "Paired") +
  scale_x_date(
    date_breaks = "2 year",
    date_labels = "%Y",
    expand = c(0,0)
  )+
  labs(
    x = "",
    y = "Remuneraciones promedio",
    color = "",
    caption = "J.Cornick con base en INEGI"
  )
Figura 45: Remuneraciones promedio del régimen IMMEX, 2007-2025 por Estado