Exercício 1.1

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

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

Criando o boxplot personalizado

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

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.

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.

Resumo Visual

## Exemplo prático: Imagine um gráfico de 'Consumo na Cidade' vs 'Cilindros' (dataset mpg). Como 'Cilindros' são números inteiros (4, 6, 8), o geom_point() mostraria apenas 3 colunas de pontos alinhados. O geom_jitter() espalharia esses pontos para mostrar quantos carros existem em cada categoria.

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")