Projeto IPEA

Author

Bruna Campelo

CODIGO UTILIZADO PARA OBTER RESULTADO (Linguagem R)

IMPORTANDO E LIMPANDO DADOS

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 ano

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)