Exercício 1.1 - Introdução ao ggplot2

Carregue o dataset mtcars e crie um gráfico de dispersão (scatter plot) entre as variáveis mpg (milhas por galão) e wt (peso do carro).
ggplot(data = 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 Veículo (wt)",
y = "Consumo (mpg)",
color = "Cilindros"
) +
theme_minimal()

Exercício 1.2 - Gráficos de Barras

Utilizando o dataset diamonds, crie um gráfico de barras mostrando a contagem de dia mantes por corte (cut).
ggplot(diamonds, aes(x = fct_infreq(cut), fill = cut)) +
  geom_bar() +
  geom_text(stat = "count", aes(label = after_stat(count)), vjust = -0.5) +
  scale_fill_brewer(palette = "Spectral") +
labs(
    title = "Contagem de Diamantes por Tipo de Corte",
    x = "Corte (Ordenado por Frequência)",
    y = "Contagem",
    fill = "Corte"
  ) +
  theme_minimal()

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

Crie um boxplot da variável price por cut no dataset diamonds.
ggplot(diamonds, aes(x = cut, y = price, fill = cut)) +
  geom_boxplot() +
  labs(title = "Distribuição de Preços por Corte de Diamante",
       x = "Corte",
       y = "Preço") +
  scale_fill_manual(values = c("Fair" = "#FF9999", 
                               "Good" = "#99FF99", 
                               "Very Good" = "#9999FF", 
                               "Premium" = "#FFFF99", 
                               "Ideal" = "#FF99FF")) +
  theme_minimal() +
  theme(legend.position = "none",  
        axis.text.x = element_text(angle = 0, hjust = 0.5))

Exercício 1.4 - Conceitos Fundamentais

Questão 1

## Explique a diferença entre os geoms, geom point() e geom jitter(). Em que situação cada um é mais apropriado?

Resposta

## A principal diferença está na precisão da posição dos pontos e em como eles lidam com a sobreposição (overplotting).

geom_point()

## O que faz: Plota os pontos exatamente nas coordenadas (x, y) definidas nos dados. É a representação fiel e exata. O Problema: Se você tiver muitas observações com os mesmos valores (especialmente em dados discretos ou arredondados), os pontos ficarão uns sobre os outros. Você verá apenas um ponto, quando na verdade podem existir centenas ali. Quando usar: Ideal para gráficos de dispersão padrão com duas variáveis contínuas onde a precisão é crucial e não há muita sobreposição.
ggplot(mtcars, aes(x = disp, y = hp)) + geom_point()

geom_jitter()

## O que faz: Adiciona um pequeno 'ruído' aleatório (tremulação) à posição de cada ponto. Ele desloca levemente os pontos para que eles não fiquem perfeitamente empilhados. A Solução: Isso revela a densidade dos dados, permitindo ver onde há maior concentração de observações. Quando usar: Ideal quando uma ou ambas as variáveis são discretas/categóricas ou quando há muitos dados sobrepostos (overplotting), impedindo a visualização da distribuição real.
ggplot(diamonds, aes(x = cut, y = depth)) + geom_jitter(width = 0.2, alpha = 0.5)

Questão 2

## Descreva o conceito de 'Gramática dos Gráficos' e como ele é implementado no ggplot2.

Resposta

## A 'Gramática dos Gráficos' é um conceito teórico criado por Leland Wilkinson (e adaptado por Hadley Wickham para o R) que muda a forma como pensamos sobre visualização de dados.

Conceito

## Em vez de pensar em gráficos como 'catálogos prontos' (ex: 'quero um gráfico de pizza' ou 'quero um gráfico de barras'), a gramática define que todo gráfico estatístico é construído a partir dos mesmos componentes fundamentais. É como a gramática de uma língua: você tem substantivos, verbos e adjetivos e os combina para formar frases diferentes. O principal objetivo da gramática dos gráficos é associar cada componente de um gráfico a uma estrutura gramatical, semelhante à formação de uma frase. Isso possibilita a ela boração de diversos gráficos de forma mais eficiente e estruturada.

Implementação no ggplot2

## No ggplot2, os gráficos são montados por meio de camadas (ou linhas) 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 (escalas, temas e legendas).Dessa maneira, a combinação de todas as camadas resulta no gráfico final.
Camadas do pacote ggplot2()
knitr::include_graphics("GrammarofGraphics.png")