---
title: "Visualização de Dados - Trabalho Final"
author: "Lucas Júlio das Neves"
date: "11 de Dezembro de 2025"
output:
html_document:
theme: readable
highlight: tango
code_folding: show
---
UDI: 17ª RPM
1 Questões Gerais - Dashboard
# Gráfico de dispersão
ggplot(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 = "Peso do Carro (milhares de libras)",
y = "Milhas por Galão (mpg)",
color = "Número de Cilindros"
) +
theme_minimal()
🔍 Análise do Gráfico:
O gráfico de dispersão revela uma forte correlação negativa entre o peso do veículo e sua eficiência energética. Observa-se que:
Veículos com 8 cilindros (pontos vermelhos) concentram-se na região de maior peso e menor eficiência
Carros com 4 cilindros (pontos azuis) são mais leves e apresentam melhor desempenho energético
A dispersão dos pontos segue um padrão linear descendente, indicando que o peso explica grande parte da variação no consumo
Logo, este resultado era esperado, pois veículos mais pesados requerem mais energia para se movimentar, especialmente em acelerações.
# 1. Preparar os dados: contar e ordenar
dados_ordenados <- diamonds %>%
count(cut) %>%
arrange(desc(n)) %>%
mutate(cut = factor(cut, levels = cut))
# 2. Criar o gráfico
ggplot(dados_ordenados, aes(x = cut, y = n, fill = cut)) +
geom_bar(stat = "identity") + # Barras
geom_text(aes(label = n), vjust = -0.5, size = 4) + # Rótulos
labs(
title = "Contagem de Diamantes por Corte",
x = "Tipo de Corte",
y = "Número de Diamantes"
) +
scale_fill_brewer(palette = "Spectral") + # Paleta divergente
theme_minimal() +
theme(legend.position = "none") # Remove legenda
🔍 Análise do Gráfico: A distribuição de diamantes por qualidade de corte mostra um padrão interessante:
Predominância do corte “Ideal”: Com 21.551 unidades, representa aproximadamente 40% do total de diamantes na base
Distribuição desigual: Enquanto “Ideal” e “Premium” somam quase 66% dos diamantes, o corte “Fair” (Regular) representa apenas 3%
Portanto, este gráfico sugere que o mercado de diamantes privilegia cortes de alta qualidade, possivelmente devido à preferência dos consumidores ou à rentabilidade para joalherias.
# 1. Criar dataset com tradução
diamonds_pt <- diamonds %>%
mutate(cut_pt = factor(cut,
levels = c("Fair", "Good", "Very Good", "Premium", "Ideal"),
labels = c("Regular", "Bom", "Muito Bom", "Premium", "Ideal")
))
# 2. Criar o boxplot com personalizações
ggplot(diamonds_pt, aes(x = cut_pt, y = price, fill = cut_pt)) +
geom_boxplot() +
labs(
title = "Distribuição de Preços por Qualidade de Corte",
x = "Qualidade do Corte",
y = "Preço (US$)"
) +
scale_fill_manual(values = c(
"Regular" = "#E74C3C",
"Bom" = "#3498DB",
"Muito Bom" = "#2ECC71",
"Premium" = "#F1C40F",
"Ideal" = "#9B59B6"
)) +
theme_minimal() +
theme(
legend.position = "none", # Remove legenda
# AJUSTE DO ÂNGULO DOS RÓTULOS DO EIXO X - MELHORADO
axis.text.x = element_text(
angle = 0, # Ângulo de 0 graus
hjust = 1, # Alinhamento horizontal
vjust = 1, # Alinhamento vertical
size = 11, # Tamanho da fonte
face = "bold", # Negrito
margin = margin(t = 5) # Espaçamento superior
),
)
🔍 Análise do Gráfico:
O boxplot da distribuição de preços revela um paradoxo interessante:
Preço vs Qualidade inversos: Diamantes de corte “Ideal” (roxo) têm a mediana de preço mais baixa (≈US$ 1.818), enquanto “Regular” (vermelho) apresenta a maior mediana (≈US$ 3.287)
Grande variabilidade: Todos os grupos apresentam outliers de alto valor, indicando a presença de diamantes excepcionais em cada categoria
Logo, a qualidade do corte não é o principal determinante do preço. Fatores como quilate, cor e pureza provavelmente têm maior impacto. Diamantes de corte “Regular” podem ser mais raros ou ter outras características que elevam seu valor.
geom_point() e
geom_jitter()geom_point() plota os pontos exatamente
nas coordenadas especificadas pelos dados. É mais apropriado quando:
geom_jitter() adiciona um pequeno ruído
aleatório (jitter) à posição dos pontos. É mais apropriado quando:
Exemplo visual da diferença:
A Gramática dos Gráficos, proposta por Leland Wilkinson, é um sistema estruturado para construir visualizações de dados através de componentes básicos que se combinam de forma consistente, similar a uma linguagem gramatical. O objetivo é fornecer uma estrutura teórica para descrever e construir gráficos de maneira sistemática.
No pacote ggplot2 do R, desenvolvido por Hadley Wickham,
a Gramática dos Gráficos é implementada através de sete
componentes principais:
Dados (Data): Conjunto de dados a ser visualizado
ggplot(data = dados, ...)Mapeamentos Estéticos (Aesthetics): Como variáveis são mapeadas para propriedades visuais
aes(x = variavel_x, y = variavel_y, color = categoria)Objetos Geométricos (Geoms): Formas visuais que representam os dados
geom_point() # Pontos
geom_bar() # Barras
geom_line() # LinhasTransformações Estatísticas (Stats): Cálculos sobre os dados antes do plot
stat_smooth() # Suavização
stat_summary() # SumarizaçãoSistemas de Coordenadas (Coordinates): Como as posições são mapeadas no plano
coord_cartesian() # Cartesianas (padrão)
coord_polar() # Polares (gráfico de pizza)
coord_flip() # Inverte eixosFacetas (Facets): Cria múltiplos painéis por variáveis categóricas
facet_wrap(~categoria) # Painéis em grade
facet_grid(linha~coluna) # Grade com duas dimensõesTemas (Themes): Elementos não relacionados aos dados
theme_minimal() # Tema minimalista
theme_bw() # Preto e branco
theme() # Personalização completaA implementação segue o princípio de composição por
camadas, onde cada componente é adicionado com o operador
+:
ggplot(data, aes(x, y, color = grupo)) + # Dados + estéticas
geom_point() + # Geometria
stat_smooth(method = "lm") + # Estatística
facet_wrap(~grupo) + # Facetas
coord_cartesian() + # Coordenadas
theme_minimal() + # Tema
labs(title = "Meu Gráfico") # Rótulos
Esta abordagem permite construir gráficos complexos de forma incremental, mantendo consistência e flexibilidade, alinhando-se perfeitamente com os princípios da Gramática dos Gráficos.
Referência: WICKHAM, H. ggplot2: Elegant Graphics for Data Analysis. Springer, 2016.