Exercício 1.1 - Gráfico de Dispersão (carro: peso x consumo de combustível x cilindros)

# 1. Cria o dataset modificado, convertendo 'cyl' para fator
mtcars_plot <- mtcars %>%
  mutate(cyl_fator = as.factor(cyl))

# 2. Salva o gráfico em uma variável 'p'
# O código de plotagem é movido para este CHUNK VISÍVEL
p <- ggplot(data = mtcars_plot, aes(x = wt, y = mpg)) + 
  # (c) Cor diferenciada por número de cilindros (cyl)
  geom_point(aes(color = cyl_fator), size = 3) + 
  
  # (a) Título e (b) Rótulos dos eixos X e Y
  labs(
    title = "Relação entre Peso e Consumo de Combustível",
    x = "Peso do Carro (milhares de libras)", 
    y = "Consumo de Combustível (milhas por galão - MPG)",
    color = "Cilindros" # Rótulo da legenda
  ) +
  
  # (d) Tema theme_minimal()
  theme_minimal()

# 3. Exibe/imprime o objeto de plotagem 'p' no final do chunk (obrigatório para exibição)
p

Exercício 1.2 - Gráfico de Barras (Diamantes: quantidade x qualidade do corte)

# 1. Pré-processamento e Cálculo
# Calcula a contagem de diamantes por categoria de corte e a salva
# no novo dataset 'contagem_corte'.
contagem_corte <- diamonds %>%
  group_by(cut) %>%
  summarise(Contagem = n()) %>%
  # (a) Ordenar as barras em ordem decrescente
  # Reordena o fator 'cut' baseado nos valores de Contagem
  mutate(cut = reorder(cut, -Contagem))

# 2. Criação do Gráfico
ggplot(contagem_corte, aes(x = cut, y = Contagem)) +
  
  # Cria o gráfico de barras (geom_col é preferível para dados pré-sumarizados)
  geom_col(aes(fill = cut)) +
  
  # (c) Utilizar uma paleta de cores divergente (Dica: usando 'BrBG')
  # Note: Embora seja dados qualitativos, usamos Divergente aqui conforme solicitado.
  scale_fill_brewer(palette = "BrBG") +
  
  # (b) Adicionar rótulos de valor em cada barra
  # geom_text adiciona o valor da contagem (Contagem) na parte superior da barra
  geom_text(aes(label = Contagem), 
            vjust = -0.5, # Ajusta a posição verticalmente acima da barra
            size = 3.5) +
  
  # Adiciona rótulos e tema
  labs(
    title = "Contagem de Diamantes por Qualidade de Corte",
    x = "Qualidade do Corte",
    y = "Quantidade de Diamantes",
    fill = "Corte"
  ) +
  theme_minimal() +
  theme(legend.position = "none") # Remove a legenda redundante (já mapeada no eixo X)

Exercício 1.3 - Gráfico com Customização Avançada (Diamantes: qualidade do corte x preço)

# Define cores customizadas para as 5 categorias de corte (a)
# 'Ideal', 'Premium', 'Very Good', 'Good', 'Fair'
cores_customizadas <- c(
  "Ideal" = "#4C72B0", 
  "Premium" = "#55A868", 
  "Very Good" = "#C44E52", 
  "Good" = "#8172B2", 
  "Fair" = "#CCB974"
)

# Cria o gráfico
ggplot(diamonds, aes(x = cut, y = price, fill = cut)) +
  
  # Adiciona a geometria do boxplot
  geom_boxplot() +
  
  # (b) Cores customizadas para cada categoria
  scale_fill_manual(values = cores_customizadas) +
  
  # (a) Títulos e rótulos em idioma português brasileiro
  labs(
    title = "Distribuição de Preços de Diamantes por Qualidade de Corte",
    subtitle = "Dados: Dataset Diamonds",
    x = "Qualidade do Corte",
    y = "Preço (USD)",
    fill = "Corte" # Mantém a cor na legenda caso deseje incluí-la
  ) +
  
  # (c) Remoção da legenda desnecessária (fill já está no eixo X)
  theme(
    legend.position = "none",
    
    # (d) Ajuste do ângulo dos rótulos do eixo X
    axis.text.x = element_text(angle = 45, hjust = 1, vjust = 1)
  )

Exercício 1.4 - Conceitos Fundamentais: Questões.

Questão a) A diferença mais significante entre geom_point() e geom_jitter() está na forma como eles apresentam os pontos de dados que possuem posições sobrepostas (overplotting).O geom_point é indicado para aplicações com eixos contínuos e grande parte dos valores é única, demandando precisão, enquanto o geom_jitter é mais adequado quando se usam variáveis discretas e categóricas e há necessidade de se visualizar cada valor pontuado no gráfico, ainda que sobreposto.

Questão b) A gramática dos gráficos objetiva associar cada componente de um gráfico a uma estrutura semelhante a formação de uma frase. Isso possibilita a elaboracão de diversos gráficos de forma mais eficiente e estruturada. No ggplot2, os gráficos são montados por meio de camadas e atribuem-se aos dados características estéticas, como tamanho, cor e opacidade, formas geométricas, como barras, linhas e pontos, e outros elementos visuais, como escalas, temas e legendas. A combinação de todas as camadas resulta no gráfico final.