Expectativa de Vida em São Paulo

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.
data-visualization
mapas
sao-paulo
ggplot2
Author

Vinicius Oike

Published

November 3, 2023

Code
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.