Skip to contents

Os mapas precisam de três pacotes, instalados uma vez:

install.packages(c("sf", "ggplot2", "leaflet"))

Mapa estático

library(localdatasus)

circ <- obitos_bairro("Rio de Janeiro", 2023, cid = "I")
mapa_bairro(circ, titulo = "Óbitos por doenças circulatórias, Rio de Janeiro, 2023")
Mapa da taxa de óbitos por doenças circulatórias por bairro, Rio de Janeiro, 2023
Mapa da taxa de óbitos por doenças circulatórias por bairro, Rio de Janeiro, 2023
  • Cor: por padrão, o mapa é pintado pela taxa por 10 mil habitantes.
  • Contornos: são os oficiais do IBGE (Censo 2022), baixados uma vez por estado.
  • Cinza: bairros sem dado.

Escolher o que pintar e as cores

mapa_bairro(circ, valor = "obitos")             # pinta pela contagem
mapa_bairro(circ, cores = "Blues")              # outras paletas: "YlOrRd", "Greens", "Purples"...

Painéis automáticos

Se a tabela tiver um por (ou vários anos), o mapa é dividido em painéis:

por_sexo <- obitos_bairro("Rio de Janeiro", 2023, cid = "I", por = "sexo")
mapa_bairro(subset(por_sexo, sexo != "Ignorado"))
Mapas lado a lado da taxa de óbitos por sexo, por bairro, Rio de Janeiro
Mapas lado a lado da taxa de óbitos por sexo, por bairro, Rio de Janeiro

Outros lugares

Óbitos por distrito, São Paulo, 2023
Óbitos por distrito, São Paulo, 2023
Dengue por bairro, Joinville, 2024
Dengue por bairro, Joinville, 2024
mapa_bairro(obitos_bairro("São Paulo", 2023), cores = "Blues")
mapa_bairro(agravos_bairro("dengue", "Joinville", 2024))

Ajustar e salvar

mapa_bairro() devolve um gráfico ggplot2 comum:

library(ggplot2)
mapa <- mapa_bairro(circ) + labs(subtitle = "Fonte: SMS-Rio")
ggsave("mapa.png", mapa, width = 8, height = 5, dpi = 300)

Mapa interativo

mapa_interativo(agravos_bairro("dengue", "Rio de Janeiro", 2024))

O mapa abre no Viewer do RStudio, com um mapa de ruas ao fundo. Passe o mouse sobre um bairro para ver o nome, ou clique para ver casos, taxa e população. Para salvar como página web:

m <- mapa_interativo(circ)
htmlwidgets::saveWidget(m, "mapa.html")

No QGIS

Toda tabela tem lat e lon. No QGIS, use Camada → Adicionar camada → Texto delimitado, com X = lon e Y = lat. Para os polígonos, use codigo_ibge para juntar com a malha de bairros do IBGE.

Bairros com poucos moradores: taxa suavizada

Em bairros com pouca população, poucos casos já produzem taxas muito altas. No Recife, por exemplo, Santo Antônio tem 447 moradores: 24 casos de dengue em 2024 dão 537 por 10 mil, mais que o triplo dos bairros populosos. Essas taxas variam muito por acaso de um ano para outro e dominam a escala do mapa.

A saída é a taxa suavizada (bayesiano empírico): cada taxa é puxada em direção à média do município, com força maior nos bairros pouco populosos e quase nenhuma nos populosos.

dengue <- agravos_bairro("dengue", "Recife", 2024)
mapa_bairro(dengue, suavizar = TRUE)

# A coluna com a taxa suavizada, para tabelas e análises
suavizar_taxas(dengue)

No exemplo, Santo Antônio passa de 537 para 224 por 10 mil, enquanto Ibura, com 45 mil moradores, quase não muda (de 144 para 143).

Local da ocorrência: SAMU

Os chamados do SAMU registram onde aconteceu a ocorrência, não onde a pessoa mora. Em áreas centrais, comerciais ou com grandes hospitais, muita gente circula e pouca gente mora, e a taxa por morador fica artificialmente alta. Nesses casos, mapeie a contagem:

samu <- samu_bairro("Recife", 2024, tipo = "causas externas")
mapa_bairro(samu, valor = "chamados")

Próximo: 4. Internações e microdados com CEP