USArrests

# Carregando os pacotes necessários
library(dplyr)
library(tidyr)
library(plotly)

# 1. Preparação dos Dados
us_arrests_top5 <- USArrests %>%
  # Adiciona a coluna City com os nomes das linhas (estados)
  mutate(City = rownames(.)) %>%
  # Ordena de forma decrescente pela coluna Murder
  arrange(desc(Murder)) %>%
  # Seleciona os 5 primeiros (mais violentos)
  slice_head(n = 5) %>%
  # Transforma City em fator para manter a ordem decrescente no gráfico do Plotly
  mutate(City = factor(City, levels = City)) 

# 2. Transformação para o formato longo (facilita agrupar as barras no Plotly)
us_arrests_long <- us_arrests_top5 %>%
  select(City, Murder, Rape, Assault) %>%
  pivot_longer(cols = c(Murder, Rape, Assault), names_to = "Crime", values_to = "Taxa")

# 3. Construção do gráfico de barras agrupadas interativo
plot_ly(us_arrests_long, 
        x = ~City, 
        y = ~Taxa, 
        color = ~Crime, 
        type = 'bar',
        colors = c("Murder" = "#d62728", "Rape" = "#ff7f0e", "Assault" = "#1f77b4")) %>%
  layout(
    title = "Top 5 Estados mais Violentos: Taxas de Prisão",
    barmode = 'group',                                   # Define as barras agrupadas (lado a lado)
    xaxis = list(title = "Estados (City)"),              # Nome no eixo X
    yaxis = list(title = "Taxas de Prisão (por 100 mil)"), # Nome no eixo Y
    legend = list(title = list(text = "<b> Tipos de Crime </b>")) # Legenda
  )