# 1. Converter 'cyl' (cilindros) para fator
# para o gráfico interpretar que a variável da coluna cyl não seja valor numérico mas uma categoria, pois a proposta do trabalho é fazer uma cor diferenciada por número de cilindros
mtcars_prep <- mtcars %>%
mutate(cyl = as.factor(cyl))
# 2. Criação do gráfico
ggplot(data = mtcars_prep, aes(x = wt, y = mpg, color = cyl)) +
geom_point(size = 3) +
labs(
title = "Relação entre Peso e Consumo de Combustível",
x = "Peso do Carro (1000 lbs - wt)",
y = "Milhas por Galão (MPG - consumo)",
color = "Cilindros"
) +
theme_minimal()
ggplot(data = diamonds) +
# Ordenar barras em ordem decrescente
aes(x = reorder(cut, cut, function(x) -length(x)), fill = cut) +
geom_bar() +
labs(
title = "Contagem de Diamantes por Qualidade de Corte",
x = "Qualidade do Corte",
y = "Contagem de Diamantes"
) +
# Utilizar uma paleta de cores divergente
scale_fill_brewer(palette = "RdYlGn") +
# Adicionar rótulos de valor em cada barra
geom_text(
stat = "count",
aes(label = after_stat(count)),
vjust = -0.5, # posição vertical do texto acima da barra
size = 3.5
) +
theme_minimal() +
theme(legend.position = "none")
# Cores customizadas para cada categoria de corte
cores_personalizadas <- c(
"Fair" = "#E41A1C", # Vermelho
"Good" = "#377EB8", # Azul
"Very Good" = "#4DAF4A", # Verde
"Premium" = "#984EA3", # Roxo
"Ideal" = "#FF7F00" # Laranja
)
# Criação do boxplot
ggplot(data = diamonds) +
aes(x = cut, y = price, fill = cut) +
geom_boxplot() +
# Títulos e rótulos em português
labs(
title = "Distribuição do Preço por Tipo de Corte",
subtitle = "Dataset Diamonds: Análise de Preço e Qualidade",
x = "Qualidade do Corte",
y = "Preço (em dólares)"
) +
# Aplica as cores customizadas
scale_fill_manual(values = cores_personalizadas) +
theme_minimal() +
theme(
# Remoção da legenda
legend.position = "none",
# Ajuste do ângulo dos rótulos do eixo X
axis.text.x = element_text(angle = 45, hjust = 1)
)
Esta seção apresenta a explicação de conceitos fundamentais para a
Gramática dos Gráficos e a visualização de dados no
ggplot2.
A diferença principal reside no tratamento da sobreposição de pontos (overplotting), que ocorre quando múltiplos dados compartilham as mesmas coordenadas \(x\) e \(y\).
geom_point(): Desenha pontos
exatamente nas coordenadas especificadas. É mais adequado para dados
contínuos, onde a precisão da coordenada é crucial e a sobreposição é
mínima. Se muitos pontos caírem no mesmo local, eles ficarão meio que
escondidos uns atrás dos outros, distorcendo a percepção da densidade
dos dados.
geom_jitter(): Adiciona uma pequena
quantidade de ruído aleatório (jitter) aos pontos,
espalhando-os ligeiramente nas coordenadas. É ideal para dados com
variáveis discretas ou categóricas (como contagens ou ratings em
escalas), onde a sobreposição é esperada. Permite que todos os pontos
sejam visualizados, revelando a densidade real das observações em um
determinado ponto.
O conceito de “Gramática dos Gráficos” (Grammar
of Graphics), implementado no ggplot2, é uma estrutura
conceitual que define como os elementos de um gráfico são construídos de
forma modular e coerente.
Em vez de tratar gráficos como tipos predefinidos (“histograma”,
“boxplot”), a Gramática os vê como uma montagem de componentes
independentes. Esses componentes incluem: Dados, Mapeamento Estético
(aes), Geometria (geom), Estatística
(stat), Escalas (scale), Coordenadas
(coord) e Facetas (facet).
A primeira parte da prova final foi concluída, resultando em três visualizações de dados exploratórias e a descrição dos conceitos fundamentais de visualização exigidos, totalizando 4,0 pontos.