He creado este repositorio para compartir datos, el proceso, su análisis y figuras. Siéntanse libres de analizarlo, replicarlo, corregirlo, mejorarlo o lo que ustedes quieran. Una diferencia con el que compartieron es que yo tomé la serie de tiempo desde el primer año, me pareció que es una diferencia significativa y es necesario tomarla en cuenta.
library(tidyverse)
## -- Attaching packages --------------------------------------- tidyverse 1.3.0 --
## v ggplot2 3.3.3 v purrr 0.3.4
## v tibble 3.0.6 v dplyr 1.0.4
## v tidyr 1.1.2 v stringr 1.4.0
## v readr 1.4.0 v forcats 0.5.1
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
library(DataEditR)
library(magrittr)
##
## Attaching package: 'magrittr'
## The following object is masked from 'package:purrr':
##
## set_names
## The following object is masked from 'package:tidyr':
##
## extract
library(gghighlight)
library(ggrepel)
library(scales)
##
## Attaching package: 'scales'
## The following object is masked from 'package:purrr':
##
## discard
## The following object is masked from 'package:readr':
##
## col_factor
library(patchwork)
library(sf)
## Linking to GEOS 3.8.0, GDAL 3.0.4, PROJ 6.3.1
library(fuzzyjoin)
mx <- st_read("mx.gpkg",
quiet = T) %>%
rename(entidad = 1)
mx$entidad <- as.character(fct_recode(mx$entidad,
"Coahuila" = "Coahuila De Zaragoza",
"Ciudad de México" = "Distrito Federal",
"México" = "Mexico",
"Michoacán" = "Michoacan ",
"Nuevo León" = "Nuevo Leon",
"Querétaro" = "Queretaro De Arteaga"
))
incendios <- read_csv('incendios mexico.csv')
##
## -- Column specification --------------------------------------------------------
## cols(
## `Entidad federativa` = col_character(),
## `1991` = col_number(),
## `1995` = col_number(),
## `2000` = col_number(),
## `2005` = col_number(),
## `2010` = col_number(),
## `2011` = col_number(),
## `2012` = col_number(),
## `2013` = col_number(),
## `2014` = col_number(),
## `2015` = col_number(),
## `2016` = col_number(),
## `2017` = col_number(),
## `2018` = col_number(),
## `2019` = col_number(),
## `2020` = col_number()
## )
reforestaciones <- read_csv('reforestacion.csv')
##
## -- Column specification --------------------------------------------------------
## cols(
## `Entidad federativa` = col_character(),
## `1993` = col_number(),
## `1995` = col_number(),
## `2000` = col_number(),
## `2005` = col_number(),
## `2010` = col_number(),
## `2011` = col_number(),
## `2012` = col_number(),
## `2013` = col_number(),
## `2014` = col_number(),
## `2015` = col_number(),
## `2016` = col_number(),
## `2017` = col_number(),
## `2018` = col_number(),
## `2019` = col_number()
## )
incendios$`Entidad federativa` <- fct_recode(incendios$`Entidad federativa`,
"Ciudad de México" = "Ciudad de Méxic",
"México" = "Méxic",
"Michoacán" = "Michoacá",
"Nuevo León" = "Nuevo Leó",
"Querétaro" = "Querétar",
"Yucatán" = "Yucatá"
)
reforestaciones$`Entidad federativa` <- fct_recode(reforestaciones$`Entidad federativa`,
"Ciudad de México" = "Ciudad de Méxic",
"México" = "Méxic",
"Michoacán" = "Michoacá",
"Nuevo León" = "Nuevo Leó",
"Querétaro" = "Querétar",
"Yucatán" = "Yucatá"
)
incendios <- incendios %>%
rename(entidad = 1) %>%
filter(entidad != 'Nacional') %>%
pivot_longer(!c(entidad),
names_to = 'año',
values_to = 'superficie') %>%
mutate(año = parse_number(año)) %>%
group_by(entidad) %>%
mutate(acumulado = cumsum(superficie),
t = año - lag(año),
cociente = superficie / lag(superficie),
a = cociente ^ (1/t),
tasa = round(a - 1, 2)) %>%
mutate(tipo = 'incendios',
entidad = as.character(entidad)) %>%
select(!t:a)
reforestaciones <- reforestaciones %>%
rename(entidad = 1) %>%
filter(entidad != 'Nacional') %>%
pivot_longer(!c(entidad), names_to = 'año', values_to = 'superficie') %>%
mutate(año = parse_number(año)) %>%
group_by(entidad) %>%
mutate(acumulado = cumsum(superficie),
t = año - lag(año),
cociente = superficie / lag(superficie),
a = cociente ^ (1/t),
tasa = round(a - 1, 2)) %>%
mutate(tipo = 'incendios',
entidad = as.character(entidad)) %>%
select(!t:a)
superficie_incendios <- ggplot(incendios, aes(año, acumulado, color = entidad)) +
geom_line(size = 2) +
geom_point(size = 3) +
gghighlight(max(acumulado),
max_highlight = 10,
use_direct_label = F,
unhighlighted_params = list(alpha = 0.3)) +
facet_wrap(~fct_reorder(entidad, acumulado, .fun = max, .desc = T))+
theme_minimal() +
scale_y_continuous(labels = comma) +
labs(x = 'Año',
y = 'Hectáreas',
title = 'Superficie afectada por incendios (1990 - 2010)') +
theme(legend.position = 'none',
axis.text.x = element_text(angle = 45)) +
scale_x_continuous(breaks = seq(1990, 2020, 4),
labels = seq(1990, 2020, 4))
superficie_incendios
superficie_reforestaciones <- ggplot(reforestaciones, aes(año, acumulado, color = entidad)) +
geom_line(size = 2) +
geom_point(size = 3) +
gghighlight(max(acumulado),
max_highlight = 10,
use_direct_label = F,
unhighlighted_params = list(alpha = 0.3)) +
facet_wrap(~fct_reorder(entidad, acumulado, .fun = max, .desc = T))+
theme_minimal() +
scale_y_continuous(labels = comma, limits = c(0, 150000)) +
labs(x = 'Año',
y = 'Hectáreas',
title = 'Superficie reforestada (1993 - 2020)') +
theme(legend.position = 'none',
axis.text.x = element_text(angle = 45)) +
scale_x_continuous(breaks = seq(1993, 2020, 4),
labels = seq(1993, 2020, 4))
superficie_reforestaciones
incendios_espacial <- left_join(mx, incendios) %>%
filter(año == 2020)
## Joining, by = "entidad"
reforestaciones_espacial <- left_join(mx, reforestaciones) %>%
filter(año == 2019)
## Joining, by = "entidad"
mapa_incendios <- ggplot() +
geom_sf(data = mx) +
geom_sf(data = incendios_espacial %>%
arrange(desc(acumulado)) %>%
slice_max(order_by = acumulado, n = 10),
aes(fill = acumulado)) +
scale_fill_viridis_c(limits = c(0, 600000),
breaks = seq(100000, 600000, 100000),
labels = comma) +
geom_sf_label(data = incendios_espacial %>%
arrange(desc(acumulado)) %>%
slice_max(order_by = acumulado, n = 10),
aes(label = paste0(1:10, '. ', entidad)),
size = 2) +
theme_minimal() +
theme(axis.text = element_blank()) +
labs(x = NULL,
y = NULL,
fill = 'Hectáreas',
title = 'Principales estados afectados por incendios')
mapa_reforestacion <- ggplot() +
geom_sf(data = mx) +
geom_sf(data = reforestaciones_espacial %>%
arrange(desc(acumulado)) %>%
slice_max(order_by = acumulado, n = 10),
aes(fill = acumulado)) +
scale_fill_viridis_c(limits = c(100000, 140000),
breaks = seq(100000, 140000, 10000),
labels = comma) +
geom_label_repel(data = reforestaciones_espacial %>%
arrange(desc(acumulado)) %>%
slice_max(order_by = acumulado, n = 10),
aes(label = paste0(1:10, '. ', entidad),
geometry = geom),
size = 2,
stat = 'sf_coordinates') +
theme_minimal() +
theme(axis.text = element_blank()) +
labs(x = NULL,
y = NULL,
fill = 'Hectáreas',
title = 'Principales estados reforestados')
mapa_incendios
## Warning in st_point_on_surface.sfc(sf::st_zm(x)): st_point_on_surface may not
## give correct results for longitude/latitude data
mapa_reforestacion
## Warning in st_point_on_surface.sfc(sf::st_zm(x)): st_point_on_surface may not
## give correct results for longitude/latitude data