Identificação

Discente: Guilherme de P. Gonzaga Número de Polícia: 170.421-2 CPF: 091.472.666-86

Exercício 1.1 - Gráfico de Dispersão

# Carregando a biblioteca necessária
library(ggplot2)

# Criando o gráfico solicitado no Exercício 1.1 [cite: 11]
ggplot(data = mtcars) + 
  aes(x = wt, y = mpg, color = as.factor(cyl)) + 
  geom_point() +
  labs(title = "Relação entre Peso e Consumo de Combustível", # Requisito (a) [cite: 13]
       x = "Peso (wt)", # Requisito (b) [cite: 14]
       y = "Milhas por Galão (mpg)", # Requisito (b) [cite: 14]
       color = "Cilindros") + # Requisito (c) [cite: 15]
  theme_minimal() # Requisito (d) [cite: 16]

Exercício 1.2 - Gráfico de Barras (Diamonds)

# Carregando a biblioteca para manipular dados
library(dplyr)
## 
## Anexando pacote: 'dplyr'
## Os seguintes objetos são mascarados por 'package:stats':
## 
##     filter, lag
## Os seguintes objetos são mascarados por 'package:base':
## 
##     intersect, setdiff, setequal, union
# Criando o gráfico conforme os requisitos (a), (b) e (c)
diamonds %>%
  count(cut) %>%
  ggplot(aes(x = reorder(cut, -n), y = n, fill = cut)) +
  geom_bar(stat = "identity") +
  geom_text(aes(label = n), vjust = -0.5) + # Rótulo de valor em cada barra
  scale_fill_brewer(palette = "RdYlBu") + # Paleta de cores divergente
  labs(title = "Contagem de Diamantes por Corte", 
       x = "Qualidade do Corte", 
       y = "Quantidade") +
  theme_minimal()

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

library(ggplot2)
library(dplyr)

# 1. Traduzindo as categorias dos dados para Português
diamonds_pt <- diamonds %>%
  mutate(cut = recode(cut, 
                      "Fair" = "Regular", 
                      "Good" = "Bom", 
                      "Very Good" = "Muito Bom", 
                      "Premium" = "Premium", 
                      "Ideal" = "Ideal"))

# 2. Gerando o gráfico com os dados traduzidos
ggplot(diamonds_pt, aes(x = cut, y = price, fill = cut)) +
  geom_boxplot() +
  
  # (a) Títulos e rótulos totalmente em português 
  labs(
    title = "Distribuição de Preços por Qualidade de Corte", 
    x = "Qualidade do Corte", 
    y = "Preço (US$)"
  ) +
  
  # (b) Cores customizadas [cite: 84]
  scale_fill_viridis_d() + 
  
  theme_minimal() +
  
  # (c) Remoção da legenda e (d) Ajuste do ângulo do eixo X [cite: 85, 86]
  theme(
    legend.position = "none", 
    axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1) 
  )

Exercício 1.4 - Conceitos de Visualização 1. Diferença entre geom_point() e geom_jitter():

geom_point(): É utilizado para plotar pontos nas suas coordenadas exatas. É ideal quando os dados são precisos e não existe sobreposição de muitos pontos no mesmo local.

geom_jitter(): Adiciona um pequeno ruído aleatório à posição dos pontos. É a escolha correta quando existe o problema de overplotting (muitos pontos uns sobre os outros), permitindo visualizar a real densidade e distribuição dos dados que, de outra forma, pareceriam um único ponto.

  1. O conceito de “Gramática dos Gráficos”:

A “Gramática dos Gráficos” é uma teoria que propõe que um gráfico pode ser construído de forma estruturada através da combinação de camadas independentes.

No pacote ggplot2, este conceito é implementado permitindo que o utilizador adicione camadas de dados, mapeamentos estéticos (cores, eixos) e geometrias (pontos, barras, linhas) utilizando o operador + para somar estes elementos e formar a visualização final.