Ocultar código
library(sf)
library(glue)
library(patchwork)
library(ggtext)
library(showtext)
library(tidyverse)
Sitio en construcción
Víctor Gauto
27 de abril de 2024
Mapa de buzones en Argentina, con detalle de la Provincia de Buenos Aires y Ciudad Autónoma de Buenos Aires.
Colores.
Fuentes: Ubuntu, JetBrains Mono y Diphylleia.
font_add(
family = "ubuntu",
regular = "././fuente/Ubuntu-Regular.ttf",
bold = "././fuente/Ubuntu-Bold.ttf",
italic = "././fuente/Ubuntu-Italic.ttf"
)
font_add(
family = "jet",
regular = "././fuente/JetBrainsMonoNLNerdFontMono-Regular.ttf"
)
font_add_google(name = "Diphylleia", family = "diphylleia", db_cache = FALSE)
showtext_auto()
showtext_opts(dpi = 300)
fuente <- glue(
"<b>Datos:</b> <span style='color:{c1};'>@matiasprofeta</span>
<span style='color:{c1};'>@rescatandobuzones</span>")
autor <- glue("<span style='color:{c1};'>Víctor Gauto</span>")
icon_twitter <- glue("<span style='font-family:jet;'></span>")
icon_instagram <- glue("<span style='font-family:jet;'></span>")
icon_github <- glue("<span style='font-family:jet;'></span>")
icon_mastodon <- glue("<span style='font-family:jet;'>󰫑</span>")
icon_bluesky <- glue("<span style='font-family:jet;'></span>")
usuario <- glue("<span style='color:{c1};'>vhgauto</span>")
sep <- glue("**|**")
mi_caption <- glue(
"{fuente} {sep} {autor} {sep} <b>{icon_github} {icon_twitter} ",
"{icon_instagram} {icon_mastodon} {icon_bluesky}</b> {usuario}"
)
Vectores de las provincias y sus departamentos, obtenidos del Instituto Geográfico Nacional.
Selecciono la Provincia de Buenas y la Ciudad Autónoma de Buenos Aires para ver con mayor detalle. Incluyo los departamentos y comunas, respectivamente.
Los buzones provienen de un mapa en Google Maps. Leo las capas del archivo .kml
.
Defino una función para la lectura de cada capa disponible y aplico.
Extraigo los buzones ubicados en Provincia de Buenos Aires y Ciudad Autónoma de Buenos Aires.
Cuento la cantidad de buzones en Provincia de Buenos Aires y Ciudad Autónoma de Buenos Aires. Para ello cuento la cantidad existente en cada departamento, luego combino con los vectores de las regiones.
Cantidad de buzones por región y porcentaje.
n_bsas <- buzones_dptos |>
filter(provincia == "Buenos Aires") |>
drop_na() |>
nrow()
n_caba <- buzones_dptos |>
filter(provincia == "Ciudad Autónoma de Buenos Aires") |>
drop_na() |>
nrow()
n_buzones <- nrow(buzones)
porcentaje_bsas <- gt::vec_fmt_percent(x = n_bsas/n_buzones, decimals = 0)
porcentaje_caba <- gt::vec_fmt_percent(x = n_caba/n_buzones, decimals = 0)
Título y subtítulo
Incluyo la imagen de una estampilla dedicada a los buzones, emitida en 2011.
Figura de la estampilla.
estampilla <- ggplot() +
annotate(
geom = "richtext", x = 0, y = 0, fill = NA, label.color = NA, hjust = 0,
label = glue(
"<img src='argentina/extras/buzones_estampilla.jpg' width='140'></img><br>",
"{estampilla_label}"), family = "ubuntu", size = 5, color = c2) +
coord_cartesian(xlim = c(-.01, .01), ylim = c(-.01, .01), expand = FALSE) +
theme_void()
Logo del Correo Argentino.
Mapa de Argentina, Provincia de Buenos Aires y Ciudad Autónoma de Buenos Aires.
g1 <- ggplot() +
geom_sf(data = pcias, fill = c1, color = c2, linewidth = .5) +
geom_sf(
data = buzones, color = c3, size = 2, alpha = .6, shape = 4, stroke = 1) +
coord_sf(clip = "off") +
theme_void()
g2 <- ggplot() +
geom_sf(data = dptos_bsas, fill = c1, color = c2, linewidth = .4) +
geom_sf(
data = buzones_bsas, color = c3, size = 2, alpha = .5, shape = 4,
stroke = 1) +
theme_void()
g3 <- ggplot() +
geom_sf(data = dptos_caba, fill = c1, color = c2, linewidth = .4) +
geom_sf(
data = buzones_caba, color = c3, size = 3, alpha = .6, shape = 4,
stroke = 1) +
theme_void()
Combino los mapas de acuerdo con el diseño
dado.
Combino los mapas de las regiones con el logo de Correo Argentino y la estampilla de los buzones.
gg <- g +
inset_element(estampilla, left = 1.2, bottom = 1.1, top = .3, right = -2.2) +
inset_element(logo, left = -3.25, bottom = -.95, top = .9, right = .9) +
plot_annotation(
title = mi_title,
subtitle = mi_subtitle,
caption = mi_caption,
theme = theme(
aspect.ratio = 1,
plot.background = element_rect(
fill = c4, color = c3, linewidth = 3
),
plot.title.position = "plot",
plot.title = element_text(
family = "diphylleia", size = 80, color = c1,
hjust = .5, margin = margin(t = 5)
),
plot.subtitle = element_markdown(
color = c2, family = "ubuntu", size = 20, hjust = .5,
lineheight = 1.3
),
plot.caption = element_markdown(
color = c2, family = "ubuntu", size = 15,
margin = margin(b = 10, r = 10)
)
)
)
Guardo.
---
format:
html:
code-fold: show
code-summary: "Ocultar código"
code-line-numbers: false
code-annotations: false
code-link: true
code-tools:
source: true
toggle: true
caption: "Código"
code-overflow: scroll
page-layout: full
editor_options:
chunk_output_type: console
categories: ["geom_sf"]
execute:
eval: false
echo: true
warning: false
title: "📮 Buzones"
date: 2024-04-27
author: Víctor Gauto
---
Mapa de buzones en Argentina, con detalle de la Provincia de Buenos Aires y Ciudad Autónoma de Buenos Aires.

## Paquetes
```{r}
library(sf)
library(glue)
library(patchwork)
library(ggtext)
library(showtext)
library(tidyverse)
```
## Estilos
Colores.
```{r}
c1 <- "#FFCE00"
c2 <- "white"
c3 <- "#152663"
c4 <- "#BE5660"
```
Fuentes: Ubuntu, JetBrains Mono y Diphylleia.
```{r}
font_add(
family = "ubuntu",
regular = "././fuente/Ubuntu-Regular.ttf",
bold = "././fuente/Ubuntu-Bold.ttf",
italic = "././fuente/Ubuntu-Italic.ttf"
)
font_add(
family = "jet",
regular = "././fuente/JetBrainsMonoNLNerdFontMono-Regular.ttf"
)
font_add_google(name = "Diphylleia", family = "diphylleia", db_cache = FALSE)
showtext_auto()
showtext_opts(dpi = 300)
```
## Epígrafe
```{r}
fuente <- glue(
"<b>Datos:</b> <span style='color:{c1};'>@matiasprofeta</span>
<span style='color:{c1};'>@rescatandobuzones</span>")
autor <- glue("<span style='color:{c1};'>Víctor Gauto</span>")
icon_twitter <- glue("<span style='font-family:jet;'></span>")
icon_instagram <- glue("<span style='font-family:jet;'></span>")
icon_github <- glue("<span style='font-family:jet;'></span>")
icon_mastodon <- glue("<span style='font-family:jet;'>󰫑</span>")
icon_bluesky <- glue("<span style='font-family:jet;'></span>")
usuario <- glue("<span style='color:{c1};'>vhgauto</span>")
sep <- glue("**|**")
mi_caption <- glue(
"{fuente} {sep} {autor} {sep} <b>{icon_github} {icon_twitter} ",
"{icon_instagram} {icon_mastodon} {icon_bluesky}</b> {usuario}"
)
```
## Datos
Vectores de las provincias y sus departamentos, obtenidos del [Instituto Geográfico Nacional](https://www.ign.gob.ar/NuestrasActividades/InformacionGeoespacial/CapasSIG).
```{r}
pcias <- st_read("argentina/vectores/pcias_continental.gpkg") |>
select(provincia = NAM)
dptos <- st_read("argentina/vectores/dptos_continental.gpkg") |>
st_transform(crs = 5346) |>
st_make_valid() |>
st_crop(pcias) |>
select(departamento = NAM)
```
Selecciono la Provincia de Buenas y la Ciudad Autónoma de Buenos Aires para ver con mayor detalle. Incluyo los departamentos y comunas, respectivamente.
```{r}
bsas <- pcias |>
filter(provincia == "Buenos Aires")
caba <- pcias |>
filter(provincia == "Ciudad Autónoma de Buenos Aires")
dptos_bsas <- terra::crop(terra::vect(dptos), terra::vect(bsas)) |>
st_as_sf()
dptos_caba <- filter(dptos, str_detect(departamento, "Comuna"))
```
Los buzones provienen de un [mapa en Google Maps](https://www.google.com/maps/d/u/0/viewer?mid=1sUgXir-dlyHnVkSN5EVSW_qgakk). Leo las capas del archivo `.kml`.
```{r}
layers <- st_layers("argentina/vectores/buzones.kml")
capas <- layers$name
```
Defino una función para la lectura de cada capa disponible y aplico.
```{r}
f_kml <- function(x) {
l <- st_read(
dsn = "argentina/vectores/buzones.kml",
layer = x) |>
st_transform(crs = 5346)
return(l)
}
buzones <- map(capas, f_kml) |>
list_rbind() |>
st_as_sf() |>
st_geometry() |>
st_sf() |>
rename(geometry = 1) |>
mutate(nro = row_number())
```
Extraigo los buzones ubicados en Provincia de Buenos Aires y Ciudad Autónoma de Buenos Aires.
```{r}
buzones_bsas <- st_intersection(bsas, buzones)
buzones_caba <- st_intersection(caba, buzones)
```
Cuento la cantidad de buzones en Provincia de Buenos Aires y Ciudad Autónoma de Buenos Aires. Para ello cuento la cantidad existente en cada departamento, luego combino con los vectores de las regiones.
```{r}
centros_dptos <- st_point_on_surface(dptos)
centros_pcias <- st_join(centros_dptos, pcias)
polig_dptos <- st_join(dptos, centros_pcias) |>
rename(departamento = departamento.x) |>
select(-departamento.y)
buzones_dptos <- st_join(polig_dptos, buzones)
```
Cantidad de buzones por región y porcentaje.
```{r}
n_bsas <- buzones_dptos |>
filter(provincia == "Buenos Aires") |>
drop_na() |>
nrow()
n_caba <- buzones_dptos |>
filter(provincia == "Ciudad Autónoma de Buenos Aires") |>
drop_na() |>
nrow()
n_buzones <- nrow(buzones)
porcentaje_bsas <- gt::vec_fmt_percent(x = n_bsas/n_buzones, decimals = 0)
porcentaje_caba <- gt::vec_fmt_percent(x = n_caba/n_buzones, decimals = 0)
```
## Figura
Título y subtítulo
```{r}
mi_title <- "Buzones Argentinos"
mi_subtitle <- glue(
"En **Argentina** hay {n_buzones} buzones. En Provincia de Buenos Aires<br>",
"se encuentra el {porcentaje_bsas}. Capital Federal posee el ",
"{porcentaje_caba}.")
```
Incluyo la [imagen](http://upaep.filatelia.free.fr/argentina.html) de una estampilla dedicada a los buzones, [emitida en 2011](https://www.correoargentino.com.ar/filatelia/planes-de-emisiones/emisiones-2011).
```{r}
estampilla_label <- glue(
"Estampilla emitida por<br>",
"el **Correo Argentino**.<br>",
"América UPAEP-Buzones,<br>",
"2011.")
```
Figura de la estampilla.
```{r}
estampilla <- ggplot() +
annotate(
geom = "richtext", x = 0, y = 0, fill = NA, label.color = NA, hjust = 0,
label = glue(
"<img src='argentina/extras/buzones_estampilla.jpg' width='140'></img><br>",
"{estampilla_label}"), family = "ubuntu", size = 5, color = c2) +
coord_cartesian(xlim = c(-.01, .01), ylim = c(-.01, .01), expand = FALSE) +
theme_void()
```
Logo del Correo Argentino.
```{r}
logo <- ggplot() +
annotate(
geom = "richtext", x = 0, y = 0, fill = NA, label.color = NA, hjust = 0,
label = glue(
"<img src='argentina/extras/buzones_logo.png' width='100'></img>")
) +
coord_cartesian(xlim = c(-.01, .01), ylim = c(-.01, .01), expand = FALSE) +
theme_void()
```
Mapa de Argentina, Provincia de Buenos Aires y Ciudad Autónoma de Buenos Aires.
```{r}
g1 <- ggplot() +
geom_sf(data = pcias, fill = c1, color = c2, linewidth = .5) +
geom_sf(
data = buzones, color = c3, size = 2, alpha = .6, shape = 4, stroke = 1) +
coord_sf(clip = "off") +
theme_void()
g2 <- ggplot() +
geom_sf(data = dptos_bsas, fill = c1, color = c2, linewidth = .4) +
geom_sf(
data = buzones_bsas, color = c3, size = 2, alpha = .5, shape = 4,
stroke = 1) +
theme_void()
g3 <- ggplot() +
geom_sf(data = dptos_caba, fill = c1, color = c2, linewidth = .4) +
geom_sf(
data = buzones_caba, color = c3, size = 3, alpha = .6, shape = 4,
stroke = 1) +
theme_void()
```
Combino los mapas de acuerdo con el `diseño` dado.
```{r}
diseño <- "
AB
AC
"
g <- g1 + g2 + g3 + plot_layout(design = diseño)
```
Combino los mapas de las regiones con el logo de Correo Argentino y la estampilla de los buzones.
```{r}
gg <- g +
inset_element(estampilla, left = 1.2, bottom = 1.1, top = .3, right = -2.2) +
inset_element(logo, left = -3.25, bottom = -.95, top = .9, right = .9) +
plot_annotation(
title = mi_title,
subtitle = mi_subtitle,
caption = mi_caption,
theme = theme(
aspect.ratio = 1,
plot.background = element_rect(
fill = c4, color = c3, linewidth = 3
),
plot.title.position = "plot",
plot.title = element_text(
family = "diphylleia", size = 80, color = c1,
hjust = .5, margin = margin(t = 5)
),
plot.subtitle = element_markdown(
color = c2, family = "ubuntu", size = 20, hjust = .5,
lineheight = 1.3
),
plot.caption = element_markdown(
color = c2, family = "ubuntu", size = 15,
margin = margin(b = 10, r = 10)
)
)
)
```
Guardo.
```{r}
ggsave(
plot = gg,
filename = "argentina/instalaciones/buzones.png",
width = 30,
height = 40,
units = "cm"
)
```