VISUALIZAÇÃO DE DADOS
Especialização em Ciência de Dados e Big Data
Prova Final – CDBD | Entrega: 16/12/2025
Jean Marcos de Paula Hott | | CPF 108.000.926-43 | N.PM 172.457-4

Introdução

Este dashboard constitui a avaliação final da disciplina CDBD – Visualização de Dados, integrante da Especialização em Ciência de Dados e Big Data. O projeto visa demonstrar a aplicação prática dos fundamentos de visualização analítica utilizando a linguagem R e o ecossistema ggplot2.

A visualização de dados é aqui tratada como uma ferramenta estratégica de comunicação. O objetivo central é converter estruturas de dados abstratas em representações visuais que permitam a cognição imediata de padrões, tendências e anomalias. Adota-se o princípio da eficiência gráfica, priorizando a clareza e a redução da carga cognitiva em detrimento de elementos puramente decorativos.

O trabalho estrutura-se em exercícios práticos que abordam:

1.Análise de Correlação: Uso de gráficos de dispersão para variáveis contínuas.

2.Análise de Frequência: Uso de gráficos de barras ordenados para variáveis categóricas.

3.Análise de Distribuição: Uso de boxplots para medidas de posição e dispersão.

4.Fundamentos Teóricos: Discussão sobre Overplotting e a Gramática dos Gráficos.

Os exemplos utilizam os datasets clássicos mtcars e diamonds.

Exercício 1.1

Relação entre Peso e Consumo de Combustível

Row

Interpretação

Interpretação Analítica

O gráfico de dispersão (scatter plot) revela uma correlação linear negativa forte entre o peso do veículo (wt) e a eficiência de combustível (mpg). Isso indica estatisticamente que o aumento da massa do veículo é um fator determinante para a redução da sua autonomia por galão.

Segmentação por Cilindros

A inclusão da variável categórica cyl (cilindros) através do mapeamento de cores permite identificar clusters distintos:

  • 4 cilindros (azul): Veículos mais leves e com alta eficiência energética.
  • 6 cilindros(verde): Cluster intermediário.
  • 8 cilindros (vermelho): Veículos pesados e com baixo rendimento (maior consumo).

Conclusão

Conclui-se que tanto o peso do veículo quanto o número de cilindros exercem influência significativa no consumo de combustível. Veículos mais leves e com menor número de cilindros tendem a apresentar melhor desempenho energético.

Gráfico de Dispersão

Exercício 1.2

Frequência de Cortes

Row

Interpretação

Interpretação Analítica

Este gráfico de barras ilustra a frequência absoluta dos diferentes tipos de corte (cut) na base de dados diamonds. A ordenação decrescente das barras é uma decisão de design crucial, pois facilita a comparação imediata entre as categorias.

Insights Visuais

  • O corte “Ideal” é o mais frequente, sugerindo uma predominância de pedras de alta qualidade de lapidação nesta amostra.

  • O corte “Fair” (Justo) é o menos representativo.

  • A visualização respeita o princípio de que dados nominais devem ser ordenados por valor (frequência) e não alfabeticamente.

Conclusão

A análise gráfica confirma a predominância significativa de diamantes com corte “Ideal”, sugerindo um viés de alta qualidade na amostra. A ordenação decrescente das barras otimiza a legibilidade, permitindo a identificação imediata das categorias de menor frequência, enquanto os rótulos diretos eliminam a ambiguidade na leitura dos valores exatos.

Gráfico de Barras

Exercício 1.3

Distribuição de Preços

Row

Interpretação

Interpretação Analítica

O Boxplot é utilizado aqui para comparar a distribuição estatística dos preços (price) condicionada ao tipo de corte (cut).

Insights Visuais

  • Variabilidade: Cortes como “Premium” apresentam uma amplitude interquartil maior (caixa maior), indicando maior variação de preços.

  • Mediana: Curiosamente, os cortes “Ideal” possuem uma mediana de preço ligeiramente inferior a cortes “Fair”.

  • Outliers: A grande quantidade de pontos acima do “bigode” superior indica uma distribuição assimétrica à direita.

Conclusão

O boxplot revela que, paradoxalmente, cortes de maior qualidade técnica podem apresentar medianas de preço inferiores (provavelmente devido ao tamanho menor das pedras). A visualização é eficaz em destacar a alta variabilidade nos cortes “Premium” e a presença massiva de outliers na cauda superior, indicando que existem diamantes excepcionalmente caros em todas as categorias de corte.

Boxplot

Exercício 1.4

Conceitos Fundamentais

Row

Letra A – O Problema do Overplotting

Diferença Técnica

Em grandes conjuntos de dados ou quando variáveis são discretas (como o número de cilindros), ocorre o fenômeno do Overplotting (sobreposição). Múltiplos pontos ocupam exatamente a mesma coordenada cartesiana.

  • geom_point() Plota os dados com precisão matemática exata. No exemplo abaixo (lado esquerdo), parece haver poucos carros devido à sobreposição dos pontos.

  • geom_jitter() Aplica um pequeno deslocamento aleatório. No exemplo abaixo (lado direito), a “nuvem” de pontos revela a quantidade real de observações.

Row

Comparação Visual

Row

Letra B – Gramática dos Gráficos

Teoria da Visualização

A Gramática dos Gráficos (The Grammar of Graphics)

Desenvolvido por Leland Wilkinson, este conceito define que um gráfico não é uma figura estática, mas uma construção lógica. O ggplot2 implementa essa gramática através de camadas (layers) conectadas pelo operador + :

  1. Dados (Data): O dataframe base.

  2. Estética (Aesthetics): Mapeamento visual (X, Y, Cor).

  3. Geometrias (Geoms): A forma visual (pontos, barras).

  4. Facetas: Sub-painéis.

  5. Estatísticas: Transformações.

  6. Coordenadas: Espaço do desenho.

  7. Temas: Elementos visuais.

---
title: "PROVA FINAL – CDBD"
output: 
  flexdashboard::flex_dashboard:
    orientation: rows
    vertical_layout: scroll
    theme: cosmo
    source_code: embed
---

<style>
.navbar-inverse {
  background-color: #000000 !important;
  border-bottom: 4px solid #B3A369 !important;
  border-top: 4px solid #BDB76B !important;
}

.navbar-nav > li.active > a {
  background-color: #BDB76B !important;
  color: #ffffff !important;
}

.header-box {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 20px 24px;
  margin-bottom: 26px;
  background: #f8f8f8;
  border-left: 6px solid #BDB76B;
  border-bottom: 1px solid #BDB76B;
}

.header-title {
  font-size: 22px;
  font-weight: 700;
  color: #222;
}

.header-subtitle {
  font-size: 14px;
  color: #555;
}

.header-caption {
  font-size: 13px;
  color: #777;
  margin-top: 6px;
}
</style>

<div class="header-box">
<img src="1.png" style="height:90px;">
<div>
<div class="header-title">VISUALIZAÇÃO DE DADOS</div>
<div class="header-subtitle">Especialização em Ciência de Dados e Big Data</div>
<div class="header-caption">Prova Final – CDBD | Entrega: 16/12/2025</div>
<div class="header-caption"> Jean Marcos de Paula Hott | jeanhott15@gmail.com | CPF 108.000.926-43 | N.PM 172.457-4 </div>
</div>
</div>


```{r setup, include=FALSE}
library(flexdashboard)
library(ggplot2)
library(dplyr)
if(!require(gridExtra)) install.packages("gridExtra")
library(gridExtra)
```

# Introdução
Este dashboard constitui a avaliação final da disciplina CDBD – Visualização de Dados, integrante da Especialização em Ciência de Dados e Big Data. O projeto visa demonstrar a aplicação prática dos fundamentos de visualização analítica utilizando a linguagem R e o ecossistema ggplot2.

A visualização de dados é aqui tratada como uma ferramenta estratégica de comunicação. O objetivo central é converter estruturas de dados abstratas em representações visuais que permitam a cognição imediata de padrões, tendências e anomalias. Adota-se o princípio da eficiência gráfica, priorizando a clareza e a redução da carga cognitiva em detrimento de elementos puramente decorativos.

O trabalho estrutura-se em exercícios práticos que abordam:

1.Análise de Correlação: Uso de gráficos de dispersão para variáveis contínuas.

2.Análise de Frequência: Uso de gráficos de barras ordenados para variáveis categóricas.

3.Análise de Distribuição: Uso de boxplots para medidas de posição e dispersão.

4.Fundamentos Teóricos: Discussão sobre Overplotting e a Gramática dos Gráficos.

Os exemplos utilizam os datasets clássicos mtcars e diamonds.


# Exercício 1.1 

Relação entre Peso e Consumo de Combustível

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

### Interpretação {.column width=35%}

**Interpretação Analítica**

O gráfico de dispersão (scatter plot) revela uma correlação linear negativa forte entre o peso do veículo (wt) e a eficiência de combustível (mpg). Isso indica estatisticamente que o aumento da massa do veículo é um fator determinante para a redução da sua autonomia por galão.

**Segmentação por Cilindros**
  
  A inclusão da variável categórica cyl (cilindros) através do mapeamento de cores permite identificar clusters distintos:

- **4 cilindros (azul):** Veículos mais leves e com alta eficiência energética.
- **6 cilindros(verde):** Cluster intermediário.
- **8 cilindros (vermelho):** Veículos pesados e com baixo rendimento (maior consumo).

**Conclusão**

Conclui-se que tanto o peso do veículo quanto o número de cilindros exercem influência significativa no consumo de combustível. Veículos mais leves e com menor número de cilindros tendem a apresentar melhor desempenho energético.

### Gráfico de Dispersão {.column width=65%}

```{r}
ggplot(mtcars, aes(x = wt, y = mpg, color = factor(cyl))) +
  geom_point(size = 3, alpha = 0.8) +
  labs(
    title = "Relação entre Peso e Consumo de Combustível",
    x = "Peso do Veículo (wt)",
    y = "Consumo (mpg)",
    color = "Cilindros"
  ) +
  theme_minimal() +
  theme(legend.position = "bottom")
```


# Exercício 1.2

Frequência de Cortes

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

### Interpretação {.column width=35%}

**Interpretação Analítica**

Este gráfico de barras ilustra a frequência absoluta dos diferentes tipos de corte (cut) na base de dados diamonds. A ordenação decrescente das barras é uma decisão de design crucial, pois facilita a comparação imediata entre as categorias.

**Insights Visuais**

- O corte "Ideal" é o mais frequente, sugerindo uma predominância de pedras de alta qualidade de lapidação nesta amostra.

- O corte "Fair" (Justo) é o menos representativo.

- A visualização respeita o princípio de que dados nominais devem ser ordenados por valor (frequência) e não alfabeticamente.

**Conclusão**

A análise gráfica confirma a predominância significativa de diamantes com corte "Ideal", sugerindo um viés de alta qualidade na amostra. A ordenação decrescente das barras otimiza a legibilidade, permitindo a identificação imediata das categorias de menor frequência, enquanto os rótulos diretos eliminam a ambiguidade na leitura dos valores exatos.

### Gráfico de Barras {.column width=65%}

```{r}
diamonds %>%
  count(cut) %>%
  arrange(desc(n)) %>%
  ggplot(aes(x = reorder(cut, n), y = n, fill = cut)) +
  geom_col(show.legend = FALSE) +
  geom_text(aes(label = n), vjust = -0.5, size = 3.5) +
  scale_fill_brewer(palette = "Spectral") +
  labs(
    title = "Contagem de Diamantes por Corte",
    subtitle = "Ordenado por frequência decrescente",
    x = "Tipo de Corte",
    y = "Quantidade"
  ) +
  theme_minimal() +
  coord_cartesian(ylim = c(0, 23000))
```

# Exercício 1.3
Distribuição de Preços

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

### Interpretação {.column width=35%}

**Interpretação Analítica**

O Boxplot é utilizado aqui para comparar a distribuição estatística dos preços (price) condicionada ao tipo de corte (cut).

**Insights Visuais**

- Variabilidade: Cortes como "Premium" apresentam uma amplitude interquartil maior (caixa maior), indicando maior variação de preços.

- Mediana: Curiosamente, os cortes "Ideal" possuem uma mediana de preço ligeiramente inferior a cortes "Fair".

- Outliers: A grande quantidade de pontos acima do "bigode" superior indica uma distribuição assimétrica à direita.

**Conclusão**

O boxplot revela que, paradoxalmente, cortes de maior qualidade técnica podem apresentar medianas de preço inferiores (provavelmente devido ao tamanho menor das pedras). A visualização é eficaz em destacar a alta variabilidade nos cortes "Premium" e a presença massiva de outliers na cauda superior, indicando que existem diamantes excepcionalmente caros em todas as categorias de corte.

### Boxplot {.column width=65%}

```{r}
ggplot(diamonds, aes(x = cut, y = price, fill = cut)) +
  geom_boxplot(alpha = 0.7, show.legend = FALSE) +
  scale_fill_brewer(palette = "Set2") +
  labs(
    title = "Distribuição de Preços por Tipo de Corte",
    x = "Qualidade do Corte",
    y = "Preço (USD)"
  ) +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))
```

# Exercício 1.4  
Conceitos Fundamentais

Row {data-height=180}
-------------------------------------

### Letra A – O Problema do Overplotting  
Diferença Técnica

Em grandes conjuntos de dados ou quando variáveis são discretas (como o número de cilindros), ocorre o fenômeno do Overplotting (sobreposição). Múltiplos pontos ocupam exatamente a mesma coordenada cartesiana.

- **`geom_point()`** Plota os dados com precisão matemática exata. No exemplo abaixo (lado esquerdo), parece haver poucos carros devido à sobreposição dos pontos.

- **`geom_jitter()`** Aplica um pequeno deslocamento aleatório. No exemplo abaixo (lado direito), a "nuvem" de pontos revela a quantidade real de observações.


Row {data-height=400}
-------------------------------------

### Comparação Visual

```{r}
library(ggplot2)
library(gridExtra)

p1 <- ggplot(mtcars, aes(x = factor(cyl), y = mpg)) +
  geom_point(size = 4, color = "#1f77b4", alpha = 0.6) + 
  coord_cartesian(ylim = c(10, 35)) +
  labs(
    title = "geom_point() – Sobreposição",
    x = "Cilindros",
    y = "Consumo (mpg)"
  ) +
  theme_minimal()

p2 <- ggplot(mtcars, aes(x = factor(cyl), y = mpg)) +
  geom_jitter(width = 0.25, height = 0, size = 4,
              color = "#d62728", alpha = 0.6) +
  coord_cartesian(ylim = c(10, 35)) +
  labs(
    title = "geom_jitter() – Dispersão",
    x = "Cilindros",
    y = NULL
  ) +
  theme_minimal()

grid.arrange(p1, p2, ncol = 2)
```

Row {data-height=350}
-------------------------------------

### Letra B – Gramática dos Gráficos
Teoria da Visualização


A Gramática dos Gráficos (The Grammar of Graphics)

Desenvolvido por Leland Wilkinson, este conceito define que um gráfico não é uma figura estática, mas uma construção lógica. O ggplot2 implementa essa gramática através de camadas (layers) conectadas pelo operador + :

1. Dados (Data): O dataframe base.

2. Estética (Aesthetics): Mapeamento visual (X, Y, Cor).

3. Geometrias (Geoms): A forma visual (pontos, barras).

4. Facetas: Sub-painéis.

5. Estatísticas: Transformações.

6. Coordenadas: Espaço do desenho.

7. Temas: Elementos visuais.