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
)