# Load data from Python
aggression_trends2 <- reticulate::py$aggression_trends
# Clean data
aggression_trends2 <- aggression_trends2[!is.na(aggression_trends2$year), ]
aggression_trends2$year <- as.numeric(aggression_trends2$year)
# Plot
ggplot(aggression_trends2, aes(x = year, y = mean_aggression, color = speaker)) +
  geom_line(size = 1.2) +
  geom_point(size = 2) +
  geom_ribbon(aes(ymin = ci_lower, ymax = ci_upper, fill = speaker), alpha = 0.2, color = NA) +
  labs(
    title = "Aggression Rating Over Time by Speaker",
    x = "Year",
    y = "Mean Aggression Rating"
  ) +
  theme_minimal() +
  scale_x_continuous(
    breaks = unique(na.omit(as.numeric(aggression_trends2$year)))
  ) +
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
  geom_hline(yintercept = 0, linetype = "dashed")