POLÍCIA MILITAR DE MINAS GERAIS

DÉCIMA PRIMEIRA REGIÃO DA POLÍCIA MILITAR

RELATÓRIO – VISUALIZAÇÃO DE DADOS

Discente: Hércules Soares Mota CPF: 084.751.926-02 E-mail: Número de Polícia: 142.614-7 Unidade: 11ª RPM

Introdução

Este relatório apresenta as atividades desenvolvidas na prova final da disciplina de Visualização de Dados, utilizando a linguagem R e o pacote ggplot2 para construção de gráficos estatísticos.

library(ggplot2)

data(mtcars)

### Gráfico de dispersão
ggplot(data = mtcars, aes(x = wt, y = mpg, color = factor(cyl))) +
geom_point(size = 3) +
labs(
  title = "Relação entre Peso e Consumo de Combustível",
  x = "(wt)",
  y = "(mpg)",
  color = "Número de Cilindros"
) +
theme_minimal()

data(diamonds)

### Gráfico de barras
ggplot(diamonds, aes(x = cut, fill = cut)) +
  geom_bar() +
  geom_text(
    stat = "count",
    aes(label = ..count..),
    vjust = -0.3
  ) +
  scale_x_discrete(
    limits = names(sort(table(diamonds$cut), decreasing = TRUE))
  ) +
  scale_fill_brewer(palette = "RdBu") +
  labs(
    title = "Contagem de Diamantes por Tipo de Corte",
    x = "Tipo de Corte",
    y = "Quantidade de Diamantes"
  ) +
  theme_minimal()
## Warning: The dot-dot notation (`..count..`) was deprecated in ggplot2 3.4.0.
## ℹ Please use `after_stat(count)` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

### Tradução dos níveis de corte
diamonds$cut <- factor(
  diamonds$cut,
  levels = c("Fair", "Good", "Very Good", "Premium", "Ideal"),
  labels = c("Ruim", "Regular", "Bom", "Muito Bom", "Ótimo")
)

ggplot(diamonds, aes(x = cut, y = price, fill = cut)) +
  geom_boxplot() +
  scale_fill_manual(
    values = c(
      "Ruim" = "#d73027",
      "Regular" = "#fc8d59",
      "Bom" = "#fee090",
      "Muito Bom" = "#91bfdb",
      "Ótimo" = "#4575b4"
    )
  ) +
  labs(
    title = "Distribuição do Preço dos Diamantes por Tipo de Corte",
    x = "Tipo de Corte",
    y = "Preço"
  ) +
  theme_minimal() +
  theme(
    legend.position = "none",
    axis.text.x = element_text(angle = 45, hjust = 1)
  )

Conceitos Fundamentais

Diferença entre geom_point() e geom_jitter(): O geom_point() plota os dados exatamente em suas posições reais. O geom_jitter() adiciona um pequeno deslocamento aleatório, sendo indicado quando há sobreposição de pontos.

Gramática dos Gráficos: A Gramática dos Gráficos define que uma visualização é composta por dados, mapeamentos estéticos, geometrias, escalas e temas. O ggplot2 implementa esse conceito de forma modular e incremental.