SEGUNDA REGIÃO DE POLÍCIA MILITAR
SEGUNDA REGIÃO DE POLÍCIA MILITAR

1 Questões Gerais - Dashboard

Exercício 1.1 - Introdução ao ggplot2

# 1. Converter 'cyl' (cilindros) para fator 
# para o gráfico interpretar que a variável da coluna cyl não seja valor numérico mas uma categoria, pois a proposta do trabalho é fazer uma cor diferenciada por número de cilindros
mtcars_prep <- mtcars %>%
  mutate(cyl = as.factor(cyl))

# 2. Criação do gráfico
ggplot(data = mtcars_prep, aes(x = wt, y = mpg, color = cyl)) +
  geom_point(size = 3) +
  labs(
    title = "Relação entre Peso e Consumo de Combustível", 
    x = "Peso do Carro (1000 lbs - wt)", 
    y = "Milhas por Galão (MPG - consumo)", 
    color = "Cilindros" 
  ) +
  theme_minimal()

Exercício 1.2 - Gráficos de Barras

ggplot(data = diamonds) + 
  # Ordenar barras em ordem decrescente
  aes(x = reorder(cut, cut, function(x) -length(x)), fill = cut) + 
  geom_bar() + 
  labs(
    title = "Contagem de Diamantes por Qualidade de Corte",
    x = "Qualidade do Corte",
    y = "Contagem de Diamantes"
  ) + 
  
  # Utilizar uma paleta de cores divergente
  scale_fill_brewer(palette = "RdYlGn") + 
  
  # Adicionar rótulos de valor em cada barra
  geom_text(
    stat = "count",
    aes(label = after_stat(count)),
    vjust = -0.5, # posição vertical do texto acima da barra
    size = 3.5
  ) +
  theme_minimal() + 
  theme(legend.position = "none") 

Exercício 1.3 - Customização Avançada

# Cores customizadas para cada categoria de corte
cores_personalizadas <- c(
  "Fair" = "#E41A1C",       # Vermelho
  "Good" = "#377EB8",       # Azul
  "Very Good" = "#4DAF4A",  # Verde
  "Premium" = "#984EA3",    # Roxo
  "Ideal" = "#FF7F00"       # Laranja
)

# Criação do boxplot
ggplot(data = diamonds) + 
  aes(x = cut, y = price, fill = cut) + 
  geom_boxplot() + 
  # Títulos e rótulos em português
  labs(
    title = "Distribuição do Preço por Tipo de Corte",
    subtitle = "Dataset Diamonds: Análise de Preço e Qualidade",
    x = "Qualidade do Corte",
    y = "Preço (em dólares)"
  ) + 
  # Aplica as cores customizadas
  scale_fill_manual(values = cores_personalizadas) + 
  theme_minimal() + 
  theme(
    # Remoção da legenda
    legend.position = "none", 
    # Ajuste do ângulo dos rótulos do eixo X
    axis.text.x = element_text(angle = 45, hjust = 1) 
  )

2.4. Exercício 1.4 - Conceitos Fundamentais

Esta seção apresenta a explicação de conceitos fundamentais para a Gramática dos Gráficos e a visualização de dados no ggplot2.

2.4.1. Diferença entre geom_point() e geom_jitter()

A diferença principal reside no tratamento da sobreposição de pontos (overplotting), que ocorre quando múltiplos dados compartilham as mesmas coordenadas \(x\) e \(y\).

  • geom_point(): Desenha pontos exatamente nas coordenadas especificadas. É mais adequado para dados contínuos, onde a precisão da coordenada é crucial e a sobreposição é mínima. Se muitos pontos caírem no mesmo local, eles ficarão meio que escondidos uns atrás dos outros, distorcendo a percepção da densidade dos dados.

  • geom_jitter(): Adiciona uma pequena quantidade de ruído aleatório (jitter) aos pontos, espalhando-os ligeiramente nas coordenadas. É ideal para dados com variáveis discretas ou categóricas (como contagens ou ratings em escalas), onde a sobreposição é esperada. Permite que todos os pontos sejam visualizados, revelando a densidade real das observações em um determinado ponto.

2.4.2. Conceito de “Gramática dos Gráficos”

O conceito de “Gramática dos Gráficos” (Grammar of Graphics), implementado no ggplot2, é uma estrutura conceitual que define como os elementos de um gráfico são construídos de forma modular e coerente.

Em vez de tratar gráficos como tipos predefinidos (“histograma”, “boxplot”), a Gramática os vê como uma montagem de componentes independentes. Esses componentes incluem: Dados, Mapeamento Estético (aes), Geometria (geom), Estatística (stat), Escalas (scale), Coordenadas (coord) e Facetas (facet).


3. Conclusão da Primeira Parte

A primeira parte da prova final foi concluída, resultando em três visualizações de dados exploratórias e a descrição dos conceitos fundamentais de visualização exigidos, totalizando 4,0 pontos.