---
title: "Expectativa de Vida em São Paulo"
date: "2023-11-03"
categories: ['data-visualization', 'mapas', 'sao-paulo', 'ggplot2']
description: "Um mapa coroplético que apresenta a desigualdade na expectativa de vida nos distritos de São Paulo. Do Jardim Paulista até Anhanguera são 23 anos de diferença na idade média ao morrer. Enquanto no Jardim Paulista espera-se viver até 82 anos, em Anhanguera a expectativa de vida não chega aos 60 anos."
format:
html:
code-tools: true
execute:
echo: false
warning: false
message: false
---
```{r}
#| code-fold: true
#| echo: true
library(ggplot2)
library(tidypod)
library(dplyr)
library(showtext)
library(readxl)
library(here)
library(sf)
library(patchwork)
font_add_google("Roboto Mono", "Roboto Mono")
showtext_auto()
# Import districts shapefile
dstr <- tidypod::districts
dstr <- filter(dstr, code_muni == 36)
# Import Mapa Desigualdade Data
# https://www.nossasaopaulo.org.br/campanhas/#13
url <- "https://www.nossasaopaulo.org.br/wp-content/uploads/2023/11/mapa_da_desigualdade_2023_dados.xlsx"
tf <- tempfile(fileext = "xlsx")
download.file(url, tf, quiet = TRUE)
sp <- read_excel(
tf,
sheet = 4,
.name_repair = janitor::make_clean_names
)
sp <- sp |>
rename(name_district = distritos) |>
mutate(name_district = if_else(name_district == "Moóca", "Mooca", name_district))
mapasp <- dstr |>
left_join(sp, by = "name_district")
pmap <- ggplot(mapasp, aes(fill = idade_media_ao_morrer)) +
geom_sf() +
scale_fill_fermenter(
name = "",
palette = "RdBu",
breaks = seq(55, 85, 5),
direction = 1) +
labs(
title = "Expectativa de Vida",
subtitle = "Idade média ao morrer por distrito em São Paulo",
caption = "Fonte: Nossa São Paulo, Mapa da Desigualdade (2023)"
) +
ggthemes::theme_map(base_family = "Roboto Mono") +
theme(
legend.position = "top",
legend.justification = 0.5,
legend.key.size = unit(0.5, "cm"),
legend.key.width = unit(1.25, "cm"),
legend.text = element_text(size = 12),
legend.margin = margin(),
plot.margin = margin(10, 5, 5, 10),
plot.title = element_text(size = 28, hjust = 0.5),
plot.subtitle = element_text(size = 14, hjust = 0.5)
)
count_group <- mapasp |>
st_drop_geometry() |>
as_tibble() |>
mutate(
group = findInterval(idade_media_ao_morrer, seq(55, 85, 5))
) |>
summarise(
count = n(),
min = min(idade_media_ao_morrer),
pop = sum(populacao_total),
.by = "group"
) |>
mutate(share = pop / sum(pop) * 100) |>
arrange(group)
pcol <- ggplot(count_group, aes(x = group, y = share, fill = as.factor(group))) +
geom_col() +
geom_text(
family = "Roboto Mono",
size = 5,
aes(x = group, y = share + 2, label = round(share, 1))
) +
labs(title = stringr::str_wrap("Percentual da população dentro de cada grupo", 25)) +
scale_fill_brewer(palette = "RdBu") +
guides(fill = 'none') +
theme_void(base_family = "Roboto Mono") +
theme(plot.title = element_text(size = 10, hjust = 0))
map_expectativa_de_vida <-
pmap + inset_element(pcol, left = 0.55, bottom = 0.05, right = 1, top = 0.4)
```
# Expectativa de vida
São Paulo é uma cidada marcada por desigualdades. Talvez uma das mais surpreendentes seja a da expectativa de vida. Do Jardim Paulista até Anhanguera são 23 anos de diferença na idade média ao morrer. Enquanto no Jardim Paulista espera-se viver até 82 anos, em Anhanguera a expectativa de vida não chega aos 60 anos.
```{r}
#| out-width: "100%"
#| out-height: 900px
#| fig-width: 9
#| fig-height: 12
#| fig-format: svg
#| fig-showtext: true
#| fig-dpi: 72
map_expectativa_de_vida
```
- Dados: Nossa São Paulo ([Mapa da Desigualdade, 2023](https://www.nossasaopaulo.org.br/category/mapa-da-desigualdade/))
- Paleta: `RdBu` ([ColorBrewer](https://colorbrewer2.org/#type=diverging&scheme=RdBu&n=9))
- Tipografia: [Roboto Mono](https://fonts.google.com/specimen/Roboto+Mono)