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"
)
```