
EXERCÍCIO 1.1 - INTRODUÇÃO AO GGPLOT2 (Gráfico de Dispersão)
# Garantir que 'cyl' seja tratada como variável categórica para o mapeamento de cores
mtcars$cyl <- as.factor(mtcars$cyl)
grafico_1_1 <- ggplot(data = mtcars, aes(x = wt, y = mpg)) +
# Camada de pontos: cor diferenciada pela variável cyl (1.1c)
geom_point(aes(color = cyl), size = 3) +
# Título e Rótulos (1.1a e 1.1b)
labs(
title = "Relação entre Peso e Consumo de Combustível",
x = "Peso do Carro (Milhares de Libras)",
y = "Consumo (Milhas por Galão - mpg)",
color = "Cilindros"
)
print(grafico_1_1)

EXERCÍCIO 1.2 - GRÁFICOS DE BARRAS (diamonds)
grafico_1_2 <- diamonds %>%
# Ordenar as barras em ordem decrescente (1.2a)
# fct_infreq ordena pela frequência (contagem), que é o valor das barras.
mutate(cut = fct_infreq(cut)) %>%
ggplot(aes(x = cut)) +
# Camada de barras (geom_bar calcula a contagem automaticamente)
geom_bar(aes(fill = cut)) +
# Adicionar rótulos de valor em cada barra (1.2b)
geom_text(
aes(label = after_stat(count)),
stat = "count",
vjust = -0.5
) +
# Utilizar uma paleta de cores divergente (1.2c). "BrBG" é uma opção.
scale_fill_brewer(palette = "BrBG") +
# Customização final
labs(
title = "Contagem de Diamantes por Qualidade de Corte",
x = "Qualidade do Corte",
y = "Contagem de Diamantes",
fill = "Corte"
) +
theme(legend.title = element_blank()) # Remove o título da legenda (estética)
print(grafico_1_2)

EXERCÍCIO 1.3 - CUSTOMIZAÇÃO AVANÇADA (Boxplot)
# Definir as cores customizadas (1.3b)
cores_customizadas <- c(
"Fair" = "#FF7F00", # Laranja Escuro
"Good" = "#FFFF99", # Amarelo Claro
"Very Good" = "#33A02C", # Verde Escuro
"Premium" = "#1F78B4", # Azul Escuro
"Ideal" = "#E31A1C" # Vermelho
)
grafico_1_3 <- ggplot(diamonds, aes(x = cut, y = price)) +
# Camada Boxplot: preenchida pelas cores das categorias
geom_boxplot(aes(fill = cut)) +
# Aplicar cores customizadas
scale_fill_manual(values = cores_customizadas) +
# Títulos e rótulos em Português (1.3a)
labs(
title = "Distribuição de Preços por Qualidade de Corte",
x = "Qualidade do Corte",
y = "Preço (dólares)"
) +
# Ajustes finos com theme()
theme(
# Remover a legenda (1.3c)
legend.position = "none",
# Ajuste do ângulo dos rótulos do eixo X (1.3d)
axis.text.x = element_text(angle = 45, hjust = 1)
)
print(grafico_1_3)

EXERCÍCIO 1.4 - CONCEITOS FUNDAMENTAIS
QUESTAO 1
Explique a diferenca entre os geoms geom_point() e geom_jitter(). Em
que situacao cada um é mais apropriado?
#RESPOSTA: O geom_jitter() é uma variação do geom_point(), a diferença entre as duas se da pelo fato de o geom_point() representar com exatidão o local dos pontos do grafico, enquanto o geom_jitter() cria uma especie de "ruido" entre os pontos. a finalidade da inserção desse "ruido" se dá para evitar sobreposições e dar uma ideia real da densidade de frequencia em cada localização do grafico.
QUESTAO 2
Descreva o conceito de “Gramatica dos Graficos” e como ele é
implementado no ggplot2.
#RESPOSTA: A Gramática dos Gráficos (The Grammar of Graphics) é um conceito que define os elementos de um gráfico através de uma estrutura lógica e modular, como se fosse a sintaxe de uma linguagem.
#Ela é implementada no pacote ggplot2 na forma de camadas, onde você constrói o gráfico em etapas sequenciais (utilizando o operador +).
#Os principais componentes ou camadas que implementam essa gramática no ggplot2 são:
#Dados (Data): O data frame ou conjunto de informações que contém as variáveis.
#Estéticas (Aesthetics - aes()): Mapeia as variáveis dos dados às propriedades visuais do gráfico (eixos X/Y, cor, tamanho, forma, etc.).
#Geometrias (Geometries - geom_*()): Define o formato visual dos dados (pontos, barras, linhas, caixas, etc.).
#Ao combinar essas camadas, você cria qualquer tipo de visualização de forma declarativa e consistente.