p<-PPBDS.data::nominate %>%
  filter(congress>=57 & party %in% c("Republican","Democrat") &
           chamber=="House" & !is.na(nominate_dim1)
         & !is.na(nominate_dim2)) %>%
  mutate(Year=1786+(2*congress)) %>%
  ggplot(aes(x = nominate_dim1, color = party)) + 
    geom_density() + 
    scale_color_manual(values = c("blue", "red")) + 
    transition_manual(Year) + 
    labs(title = "Party Polarization Session Year: {current_frame}")

animate(p)
## nframes and fps adjusted to match transition

m <- PPBDS.data::nominate %>%
  filter(congress >= 57 & party %in% c("Republican","Democrat") &
           chamber == "House" & !is.na(nominate_dim1)
         & !is.na(nominate_dim2)) %>%
  mutate(Year=1786+(2*congress)) %>%
  group_by(party, Year) %>%
  summarize(median = median(nominate_dim1), .groups = "drop") %>%
  ggplot(aes(y = median, x = Year, color = party)) + 
    geom_line() + 
    scale_color_manual(values = c("blue", "red")) + 
    transition_reveal(Year)

animate(m)