Code
library(pacman)
pacman :: p_load(tidyverse, dplyr, geobr, sidrar, sf, ggtext, showtext, ragg, viridis, ggthemes, cowplot)Ana Luisa Bodevan
Challenge Classic: Create a map focused on area features (e.g., administrative regions, land use, boundaries). Use fills, patterns, and choropleth techniques.
Para um país que ocupa o décimo lugar no ranking de PIB nominal1 o Brasil apresenta estatísticas assustadoras relacionadas ao desenvolvimento socioeconômico e acesso à necessidades básicas. Talvez uma das maiores evidências da gigantesca desigualdade de renda e serviços no país seja a situação do acesso ao saneamento básico. Dados do IBGE 2022 49 milhões de pessoas vivem em condições precárias de esgotamento sanitário2, e 90 milhões não possuem acesso à coleta e tratamento de esgoto3.
esgoto_raw <- get_sidra(
x = 6805,
variable = 1000381, # percentual
geo = "City", # municípios
classific = "c11558", # tipo de esgotamento
category = list("c11558" = 46290), # Rede geral, rede pluvial ou fossa ligada à rede
period = "2022"
)
br_muni <- read_municipality(code_muni = "all", year = 2022) # shapefile do brasil por munesgoto <- esgoto_raw %>%
select(
code_muni = `Município (Código)`,
municipio = Município,
perc_rede_geral = Valor
) %>%
mutate(
code_muni = as.numeric(code_muni)
)
br_mapa <- br_muni %>%
left_join(esgoto, by = "code_muni")
br_mapa <- br_mapa %>%
mutate(
faixa = cut(
perc_rede_geral,
breaks = c(0, 33, 66, 100),
labels = c("Baixo", "Médio", "Alto"),
include.lowest = TRUE
)
)ggplot(br_mapa) +
geom_sf(aes(fill = perc_rede_geral), color = NA, size = 0) +
scale_fill_viridis_c(
name = NULL,
option = "D",
direction = -1,
na.value = "gray90"
) +
labs(
title = "Acesso à Rede Geral de Esgoto no Brasil (2022)",
subtitle = "62.5% dos domícilios tem acesso à rede de esgoto, ainda assim,\n49 milhões utilizam recursos precários de esgotamento",
caption = "#30DayMapChallenge — Day 4: Polygons\nSource: IBGE/SIDRA | Graphic: Ana Bodevan"
) +
theme_map() +
theme(
text = element_text(family = "mont", size = rel(1)),
plot.title = element_text(size = 20, face = "bold", hjust = 0.5),
plot.subtitle = element_text(size = 16, hjust = 0.5, color = "gray30"),
legend.position = c(0.15, 0.37),
legend.key.width = unit(2.5, "cm"),
legend.title = element_text(size = 10, face = "bold"),
legend.text = element_text(size = 9),
plot.caption = element_text(size = 8, color = "gray40", hjust = 0.5, lineheight = 1.3))
https://www.poder360.com.br/poder-economia/brasil-mantem-se-como-a-10a-maior-economia-do-mundo/↩︎
https://agenciadenoticias.ibge.gov.br/agencia-noticias/2012-agencia-de-noticias/noticias/39237-censo-2022-rede-de-esgoto-alcanca-62-5-da-populacao-mas-desigualdades-regionais-e-por-cor-e-raca-persistem↩︎
https://agenciabrasil.ebc.com.br/direitos-humanos/noticia/2025-08/estudo-aponta-estagnacao-no-saneamento-5-anos-apos-novo-marco-legal↩︎
---
title: "Polygons"
author: "Ana Luisa Bodevan"
description: "Acesso à rede geral de esgoto"
image: "03_polygons.png"
execute:
warning: false
message: false
eval: false
format:
html:
code-tools: true
code-fold: true
---
# Day 3 - Polygons
> Challenge Classic: Create a map focused on area features (e.g., administrative regions, land use, boundaries). Use fills, patterns, and choropleth techniques.
Para um país que ocupa o décimo lugar no ranking de PIB nominal[^1] o Brasil apresenta estatísticas assustadoras relacionadas ao desenvolvimento socioeconômico e acesso à necessidades básicas. Talvez uma das maiores evidências da gigantesca desigualdade de renda e serviços no país seja a situação do acesso ao saneamento básico. Dados do IBGE 2022 49 milhões de pessoas vivem em condições precárias de esgotamento sanitário[^2], e 90 milhões não possuem acesso à coleta e tratamento de esgoto[^3].
[^1]: <https://www.poder360.com.br/poder-economia/brasil-mantem-se-como-a-10a-maior-economia-do-mundo/>
[^2]: <https://agenciadenoticias.ibge.gov.br/agencia-noticias/2012-agencia-de-noticias/noticias/39237-censo-2022-rede-de-esgoto-alcanca-62-5-da-populacao-mas-desigualdades-regionais-e-por-cor-e-raca-persistem>
[^3]: <https://agenciabrasil.ebc.com.br/direitos-humanos/noticia/2025-08/estudo-aponta-estagnacao-no-saneamento-5-anos-apos-novo-marco-legal>
## Setup
### Carregar bibliotecas
```{r}
library(pacman)
pacman :: p_load(tidyverse, dplyr, geobr, sidrar, sf, ggtext, showtext, ragg, viridis, ggthemes, cowplot)
```
### Carregar dados
```{r}
esgoto_raw <- get_sidra(
x = 6805,
variable = 1000381, # percentual
geo = "City", # municípios
classific = "c11558", # tipo de esgotamento
category = list("c11558" = 46290), # Rede geral, rede pluvial ou fossa ligada à rede
period = "2022"
)
br_muni <- read_municipality(code_muni = "all", year = 2022) # shapefile do brasil por mun
```
## Limpeza
```{r}
esgoto <- esgoto_raw %>%
select(
code_muni = `Município (Código)`,
municipio = Município,
perc_rede_geral = Valor
) %>%
mutate(
code_muni = as.numeric(code_muni)
)
br_mapa <- br_muni %>%
left_join(esgoto, by = "code_muni")
br_mapa <- br_mapa %>%
mutate(
faixa = cut(
perc_rede_geral,
breaks = c(0, 33, 66, 100),
labels = c("Baixo", "Médio", "Alto"),
include.lowest = TRUE
)
)
```
## Plot
### Tipografia
```{r}
font_add_google("Montserrat", "mont")
showtext_auto()
```
```{r, fig.width=960/96, fig.height=672/96, dpi=96}
ggplot(br_mapa) +
geom_sf(aes(fill = perc_rede_geral), color = NA, size = 0) +
scale_fill_viridis_c(
name = NULL,
option = "D",
direction = -1,
na.value = "gray90"
) +
labs(
title = "Acesso à Rede Geral de Esgoto no Brasil (2022)",
subtitle = "62.5% dos domícilios tem acesso à rede de esgoto, ainda assim,\n49 milhões utilizam recursos precários de esgotamento",
caption = "#30DayMapChallenge — Day 4: Polygons\nSource: IBGE/SIDRA | Graphic: Ana Bodevan"
) +
theme_map() +
theme(
text = element_text(family = "mont", size = rel(1)),
plot.title = element_text(size = 20, face = "bold", hjust = 0.5),
plot.subtitle = element_text(size = 16, hjust = 0.5, color = "gray30"),
legend.position = c(0.15, 0.37),
legend.key.width = unit(2.5, "cm"),
legend.title = element_text(size = 10, face = "bold"),
legend.text = element_text(size = 9),
plot.caption = element_text(size = 8, color = "gray40", hjust = 0.5, lineheight = 1.3))
```
{fig-align="center" width="740"}