Recently Published
PROVA FINAL – CDBD - Visualização de Dados
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.
PROVA FINAL – CDBD - Visualização de Dados
---
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.
PROVA FINAL – CDBD - Visualização de Dados
Especialização em Ciência de Dados e Big Data
Prova Final – CDBD | Entrega: 16/12/2025