Exercício 1.1 - Introdução ao ggplot2: Gráficos de Disperção

# CÓDIGO DO EXERCICIO

# Carregando os dados
data(mtcars)

# Criando o gráfico
ggplot(data = mtcars, aes(x = wt, y = mpg, color = factor(cyl))) + 
  
  # Adiciona os pontos (geom_point é para gráfico de dispersão)
  geom_point(size = 3) + 
  
  # Adiciona títulos e rótulos 
  labs(
    title = "Relação entre Peso e Consumo de Combustível",
    x = "Peso do Carro (wt)",
    y = "Milhas por Galão (mpg)",
    color = "Cilindros" # Renomeia a legenda da cor
  ) +
  
  # Define o tema minimalista (Item d)
  theme_minimal()

Exercício 1.2 - Gráfico de Barras: Gráficos de Barras

# CÓDIGO DO EXERCICIO

# Carregando o dataset
data(diamonds)

# Criando o gráfico
# fct_infreq(cut) é usado para ordenar as barras da maior para a menor frequência
ggplot(data = diamonds, aes(x = fct_infreq(cut), fill = cut)) + 
  
  # Cria as barras
  geom_bar() + 
  
  # Adiciona os rótulos de valor em cada barra
  geom_text(stat = 'count', aes(label = ..count..), vjust = -0.5) + 
  
  # Utiliza uma paleta de cores divergente
  scale_fill_brewer(palette = "Spectral") + 
  
  # Títulos e ajustes
  labs(
    title = "Contagem de Diamantes por Corte",
    x = "Tipo de Corte (Ordenado)",
    y = "Quantidade"
  ) +
  theme_minimal()

Exercício 1.3 - Customização Avançada: Boxplots

# CÓDIGO DO EXERCICIO

# Carregando dados
data(diamonds)

# Criando o Boxplot
ggplot(data = diamonds, aes(x = cut, y = price, fill = cut)) +
  
  # Geometria de Boxplot
  geom_boxplot() +
  
  # (b) Cores customizadas: Definindo 5 cores manuais (Hex codes) para as 5 categorias de corte
  scale_fill_manual(values = c("#FF9999", "#66B2FF", "#99FF99", "#FFCC99", "#D180E6")) +
  
  # (a) Títulos e rótulos em português
  labs(
    title = "Distribuição de Preços por Tipo de Corte",
    x = "Qualidade do Corte",
    y = "Preço (USD)"
  ) +
  
  # Tema base
  theme_minimal() +
  
  theme(
    legend.position = "none",                         
    axis.text.x = element_text(angle = 45, hjust = 1)
  )

Exercício 1.4 - Customização Avançada: Conceitos

Conceitos Fundamentais

1. Diferença entre geom_point() e geom_jitter()

  • geom_point(): Desenha os pontos exatamente nas coordenadas (x, y) definidas nos dados.
    • Quando usar: É mais apropriado para dados contínuos onde não há muita coincidência de valores exatos.
  • geom_jitter(): Adiciona um pequeno ruído aleatório (jitter) à posição de cada ponto.
    • Quando usar: É ideal para lidar com “overplotting” (sobreposição), que ocorre frequentemente com variáveis discretas ou categóricas. Ao espalhar levemente os pontos, ele permite visualizar a densidade de dados onde geom_point mostraria apenas um único ponto “gordo”.

2. Conceito de “Gramática dos Gráficos” no ggplot2

A “Gramática dos Gráficos” (baseada na obra de Leland Wilkinson) fundamenta-se na ideia de que qualquer gráfico estatístico pode ser construído a partir de componentes estruturais básicos, funcionando como uma linguagem.

No ggplot2, isso é implementado através da construção por camadas, somadas pelo operador +. As principais camadas são:

  1. Dados (Data): O conjunto de informações bruto.
  2. Estéticas (Aesthetics - aes): O mapeamento das variáveis dos dados para propriedades visuais (eixo x, eixo y, cor, tamanho, forma).
  3. Geometrias (Geoms): A forma visual que representa os dados (pontos, barras, linhas, boxplots).
  4. Facetas (Facets): Divisão do gráfico em múltiplos painéis (sub-gráficos).
  5. Estatísticas (Stats): Transformações matemáticas nos dados (médias, contagens, regressões).
  6. Coordenadas: O espaço onde o gráfico é desenhado (cartesiano, polar).
  7. Temas: A aparência visual não ligada aos dados (fundo, fontes, grid).