Código

# pacotes ----------------------------------------------------------------------
library(tidyverse)
library(gganimate)
library(spcrimr)
library(lubridate)
library(sf)

options(gganimate.dev_args = list(width = 1000, height = 900))

seade %>%
  select(chave:nome_localidade_pai, populacao) %>%
  inner_join(sf_sampa, .,
             by = c("chave", "municipio")) %>%
  inner_join(., select(ssp_ocorrencias_crimes, chave:ano, homicidio_doloso),
             by = c("municipio", "chave", "ano")) %>%
  
  # transforma variáveis
  mutate(area_km2 = round(unclass(st_area(.))[1:nrow(seade)] / 1000000),
         dens_demogr = populacao / area_km2,
         ano = as.integer(ano)) %>%
  select(nm_municip,
         ano,
         area_km2,
         dens_demogr,
         everything()) %>%
  st_set_geometry(NULL) %>%
  filter(populacao > 50000) %>%
  #filter(nome_localidade_pai == "Região de Governo de Bragança Paulista") %>%
  ggplot(aes(x = log(dens_demogr), y = log(homicidio_doloso / populacao))) +
  geom_point(show.legend = FALSE,
             #shape = 2,
             size = 2,
             aes(color = nome_localidade_pai,
                 fill = nome_localidade_pai)) +
  #geom_label(aes(label=nm_municip_ascii)) +
  geom_smooth(color = "black",
              se = FALSE, 
              method = lm,
              size = .5) +
  theme_bw() +
  transition_time(ano) +
  labs(title = "{frame_time}")  +
  # texto --------------------------------------------------#
  labs(title = "Taxa de homicídio e densidade demográfica - Ano: {frame_time}",
       x = "Densidade demográfica (hab/Km2)",
       y = "Taxa de Homicídio")