Topo PMMG
Décima Primeira Região da Polícia Militar
Estado-Maior da 11ª Região da Polícia Militar
Discente: Frederico Borges Evangelista

Row

Exercício 1.1 — Gráfico de Dispersão

Row

Exercício 1.2 — Gráfico de Barras

Row

Exercício 1.3 — Boxplot Customizado

Row

Exercício 1.4 — Conceitos Fundamentais

Questão 1: Diferença entre geom_point() e geom_jitter():
O geom_point() plota os pontos exatamente nas coordenadas dos dados. Já o geom_jitter() adiciona um pequeno ruído aleatório à posição dos pontos, útil quando há sobreposição (overplotting), pois melhora a visualização da densidade/distribuição.

Questão 2: Gramática dos Gráficos:
A Gramática dos Gráficos é um framework para construir visualizações por camadas: dados, mapeamentos estéticos, geometrias, escalas, coordenadas e facetas. No ggplot2, as camadas são combinadas com o operador +.

---
title: "Prova Final da disciplina Visualização de Dados"
output:
  flexdashboard::flex_dashboard:
    orientation: rows
    vertical_layout: scroll
    source_code: embed
---

```{=html}
<style>
@import url('https://fonts.googleapis.com/css2?family=Teko:wght@600;700&display=swap');

:root{
  --caqui:#a08f63;
  --preto:#373435;
  --branco:#FEFEFE;
  --vermelho:#AB2328;
  --gelo:#EAE7DE;
  --caqui-claro:#D1C9B5;
}

body{
  font-family: Arial, sans-serif;
  color: var(--preto);
}

.pmmg-header{
  background: var(--branco);
  border: 2px solid var(--caqui);
  border-radius: 14px;
  padding: 16px 18px;
  margin: 18px 0 22px 0;
  box-shadow: 0 2px 10px rgba(0,0,0,.06);
}

.pmmg-header-top{
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
}

.pmmg-escudo{
  width: 320px;
  max-width: 100%;
  height: auto;
  display: block;
}

.pmmg-titles{
  flex: 1;
  min-width: 280px;
  line-height: 1.15;
}

.pmmg-org{
  font-family: 'Teko', Arial, sans-serif;
  font-size: 34px;
  font-weight: 700;
  letter-spacing: .4px;
  margin: 0;
  color: var(--preto);
}

.pmmg-sub{
  font-size: 16px;
  margin: 4px 0 0 0;
  color: var(--preto);
}

.pmmg-meta{
  margin-top: 10px;
  background: var(--gelo);
  border-left: 6px solid var(--vermelho);
  padding: 10px 12px;
  border-radius: 10px;
  font-weight: 600;
}
</style>

<div class="pmmg-header">
  <div class="pmmg-header-top">
    <img class="pmmg-escudo" src="https://i.ibb.co/cSWsGX2k/TOPO.png" alt="Topo PMMG">
    <div class="pmmg-titles">
      <div class="pmmg-org">Décima Primeira Região da Polícia Militar</div>
      <div class="pmmg-sub">Estado-Maior da 11ª Região da Polícia Militar</div>
      <div class="pmmg-meta">Discente: Frederico Borges Evangelista</div>
    </div>
  </div>
</div>
```

```{r setup, include=FALSE}
knitr::opts_chunk$set(
  echo = FALSE,
  warning = FALSE,
  message = FALSE,
  fig.width = 12,
  fig.height = 7,
  fig.align = "center",
  out.width = "100%",
  dpi = 160
)

library(ggplot2)
library(dplyr)

# Paleta (Manual de Identidade Visual / PMMG + variações do Escudo)
pmmg_caqui       <- "#a08f63"
pmmg_preto       <- "#373435"
pmmg_branco      <- "#FEFEFE"
pmmg_vermelho    <- "#AB2328"
pmmg_caqui_claro <- "#D1C9B5"
pmmg_gelo        <- "#EAE7DE"

paleta_cut <- c(
  "Fair"      = pmmg_preto,
  "Good"      = pmmg_caqui,
  "Very Good" = pmmg_caqui_claro,
  "Premium"   = pmmg_vermelho,
  "Ideal"     = pmmg_gelo
)

theme_pmmg <- function() {
  theme_minimal(base_family = "sans", base_size = 12) +
    theme(
      plot.title         = element_text(hjust = 0.5, face = "bold", size = 16, color = pmmg_preto),
      axis.title         = element_text(face = "bold", color = pmmg_preto),
      axis.text          = element_text(color = pmmg_preto),
      panel.grid.minor   = element_blank(),
      panel.grid.major.x = element_blank(),
      legend.title       = element_text(face = "bold", color = pmmg_preto),
      legend.text        = element_text(color = pmmg_preto)
    )
}

theme_set(theme_pmmg())
```

Row {data-height=780}
-----------------------------------------------------------------------

### Exercício 1.1 — Gráfico de Dispersão

```{r exercicio1}
mtcars$cyl <- as.factor(mtcars$cyl)

ggplot(mtcars, aes(x = wt, y = mpg, color = cyl)) +
  geom_point(size = 3.6, alpha = 0.85) +
  scale_color_manual(values = c("4" = pmmg_preto, "6" = pmmg_vermelho, "8" = pmmg_caqui)) +
  labs(
    title = "Relação entre Peso e Consumo de Combustível",
    x = "Peso do Carro (1000 lbs)",
    y = "Consumo (Milhas por Galão)",
    color = "Número de Cilindros"
  )
```

Row {data-height=780}
-----------------------------------------------------------------------

### Exercício 1.2 — Gráfico de Barras

```{r exercicio2}
dados_barras <- diamonds %>%
  count(cut, name = "n") %>%
  arrange(desc(n))

ggplot(dados_barras, aes(x = reorder(cut, -n), y = n, fill = cut)) +
  geom_col(width = 0.78) +
  geom_text(aes(label = n), vjust = -0.4, size = 4, color = pmmg_preto) +
  scale_fill_manual(values = paleta_cut) +
  labs(
    title = "Contagem de Diamantes por Corte",
    x = "Tipo de Corte",
    y = "Quantidade"
  ) +
  theme(legend.position = "none")
```

Row {data-height=780}
-----------------------------------------------------------------------

### Exercício 1.3 — Boxplot Customizado

```{r exercicio3}
ggplot(diamonds, aes(x = cut, y = price, fill = cut)) +
  geom_boxplot(outlier.alpha = 0.20) +
  scale_fill_manual(values = paleta_cut) +
  labs(
    title = "Distribuição de Preço por Corte de Diamante",
    x = "Corte",
    y = "Preço (USD)"
  ) +
  theme(
    axis.text.x = element_text(angle = 35, hjust = 1),
    legend.position = "none"
  )
```

Row
-----------------------------------------------------------------------

### Exercício 1.4 — Conceitos Fundamentais

**Questão 1: Diferença entre `geom_point()` e `geom_jitter()`:**  
O `geom_point()` plota os pontos exatamente nas coordenadas dos dados. Já o `geom_jitter()` adiciona um pequeno ruído aleatório à posição dos pontos, útil quando há sobreposição (overplotting), pois melhora a visualização da densidade/distribuição.

**Questão 2: Gramática dos Gráficos:**  
A Gramática dos Gráficos é um framework para construir visualizações por camadas: **dados**, **mapeamentos estéticos**, **geometrias**, **escalas**, **coordenadas** e **facetas**. No `ggplot2`, as camadas são combinadas com o operador `+`.