library(tidyverse)
library(janitor)
file_path <- "C:/Users/math_/Downloads/Feminicidio na América Latina - Planilha1.csv"
arq <- read_csv(file_path, show_col_types = FALSE) %>%
clean_names()
dados <- head(arq, -1)
#3. Padronização e Criação de Variáveis Chave
dados_analise <- dados %>%
# Seleciona as colunas de interesse
select(
pais,
ano,
agente_passivo_da_violencia,
mencao_mulheres_trans
) %>%
# Padronização da Coluna 'mencao_mulheres_trans'
mutate(
inclusao_trans = case_when(
str_detect(tolower(mencao_mulheres_trans), "sim") ~ "1 - Sim",
str_detect(tolower(mencao_mulheres_trans), "não|nao") ~ "2 - Não",
TRUE ~ "3 - Não Especificado"
),
# Padronização e Limpeza da Definição Legal ('agente_passivo_da_violencia')
definicao_agente = case_when(
str_detect(tolower(agente_passivo_da_violencia), "mulher|genero mulher|sexo mulher") ~
agente_passivo_da_violencia,
TRUE ~ "Outra Definição" # Consolida termos menos frequentes
)
) %>%
# Seleciona apenas as novas variáveis limpas e as três chaves
select(pais, ano, definicao_agente, inclusao_trans) %>%
unique() # Remove entradas duplicadas de legislação por anoProjeto IPEA
CODIGO UTILIZADO PARA OBTER RESULTADO (Linguagem R)
IMPORTANDO E LIMPANDO DADOS
GRAFICO DE DISPERSAO (Scatter Plot)
# --- DEFINIÇÃO MANUAL DAS CORES ---
cores_manuais_definicao <- c(
"Mulher" = "#984EA3", # Vermelho
"Gênero Mulher" = "#377EB8", # Azul
"Sexo Mulher" = "#4DAF4A", # Verde
"Outra Definição" = "#984EA3" # Roxo
)
# --- 4. Visualização Final (Forma Condicional Avançada) ---
grafico_condicional_avancado <- ggplot(dados_analise,
aes(x = factor(ano),
y = pais,
fill = definicao_agente,
shape = inclusao_trans)) +
geom_point(
size = 8,
color = "black",
stroke = 1) +
# Define a escala de cores (Preenchimento) para a Definição Legal
scale_fill_manual(values = cores_manuais_definicao, name = "Definição Legal do Agente") +
# Define o mapeamento CONDICIONAL para as formas: Quadrado (22) para SIM, Círculo (21) para NÃO
scale_shape_manual(
values = c("1 - Sim" = 22,
"2 - Não" = 21,
"3 - Não Especificado" = 21),
name = "Menção a Mulheres Trans"
) +
# NOVO BLOCO ESSENCIAL PARA CORRIGIR A LEGENDA DO PREENCHIMENTO (FILL)
guides(
# Força a legenda 'fill' a usar uma forma (círculo 21) que exibe o preenchimento corretamente.
fill = guide_legend(override.aes = list(shape = 21, size = 6, color = "black")),
# Ajusta a legenda 'shape' para um melhor visual.
shape = guide_legend(override.aes = list(size = 6, color = "black"))
) +
# Adiciona rótulos e títulos
labs(
title = "Análise Integrada: Definição Legal e Inclusão Trans",
x = "Ano de Promulgação/Alteração",
y = "País"
) +
theme_minimal() +
theme(
axis.text.x = element_text(angle = 45, hjust = 1, size = 10),
plot.title = element_text(face = "bold", hjust = 0.5),
legend.position = "bottom",
legend.box = "vertical",
panel.grid.major = element_line(color = "lightgray", linewidth = 0.5),
panel.grid.minor = element_blank()
)
# Exibe o gráfico
print(grafico_condicional_avancado)