Prova/Trabalho Final Visualização de Dados

Railon Quintão de Assis, 3º SARGENTO PM, 173452-4 E-mail:


1.1 Introdução ao ggplot2

library(ggplot2)

mtcars |> 
  ggplot(aes(wt, mpg, color = factor(cyl))) +
  geom_point(size = 3, alpha = 0.7) +
  labs(
    title = "Relação entre Peso e Consumo de Combustível",
    subtitle = "Análise baseada no dataset mtcars",
    x = "Peso (1000 lbs)",
    y = "Milhas por Galão (mpg)",
    color = "Cilindros"
  ) +
  theme_minimal()

1.2 Gráfico de Barra

library(ggplot2)

ggplot(diamonds, aes(x = reorder(cut, cut, function(x) -length(x)), fill = cut)) +
  geom_bar() +
  geom_text(
    stat = "count", 
    aes(label = after_stat(count)), 
    vjust = -0.5
  ) +
  scale_fill_brewer(palette = "RdYlBu") +
  labs(
    title = "Contagem de Diamantes por Corte",
    x = "Tipo de Corte",
    y = "Quantidade"
  ) +
  theme_minimal()

1.3 Customização Avançada

library(ggplot2)

data(diamonds)

diamonds$cut <- factor(
  diamonds$cut,
  levels = c("Fair", "Good", "Very Good", "Premium", "Ideal"),
  labels = c("Ruim", "Regular", "Bom", "Muito Bom", "Ótimo")
)

ggplot(diamonds, aes(x = cut, y = price, fill = cut)) +
  geom_boxplot() +
  scale_fill_manual(
    values = c(
  "Ruim" = "#FF0000",
  "Regular" = "#FF8C00",
  "Bom" = "#FFD700",
  "Muito Bom" = "#00FF00",
  "Ótimo" = "#007BFF"
    )
  ) +
  labs(
    title = "Distribuição do Preço dos Diamantes por Tipo de Corte",
    x = "Tipo de Corte",
    y = "Preço (USD)"
  ) +
  theme_minimal() +
  theme(
    legend.position = "none",
    axis.text.x = element_text(angle = 45, hjust = 1)
  )

1.4 Conceitos Fundamentais

Exercício 1.4 - Conceitos Fundamentais Questão 1: Diferença entre geom_point() e geom_jitter() Diferença: A principal diferença está na precisão da plotagem das coordenadas: geom_point(): Plota os pontos exatamente nas coordenadas x e y definidas nos dados. Se houver múltiplas observações com os mesmos valores (ou muito próximos), os pontos ficarão uns sobre os outros, parecendo um único ponto. geom_jitter(): Adiciona um pequeno “ruído” aleatório (deslocamento) à posição de cada ponto. Isso não altera os dados originais, apenas a visualização, espalhando levemente os pontos para que não fiquem sobrepostos. Quando usar cada um: geom_point(): É mais apropriado quando você precisa de precisão exata ou está trabalhando com variáveis contínuas onde a sobreposição não é um problema grave (ex: relação entre Peso e Altura com muitas casas decimais). geom_jitter(): É mais apropriado para evitar o overplotting (sobreposição excessiva), comum em dados discretos ou categóricos (ex: notas de 1 a 5, número de cilindros de um carro). Ele permite visualizar a densidade de dados onde, de outra forma, veríamos apenas uma linha ou ponto. Questão 2: Gramática dos Gráficos e implementação no ggplot2 Conceito: A “Gramática dos Gráficos” (The Grammar of Graphics), proposta originalmente por Leland Wilkinson, é uma estrutura teórica que define um gráfico não como uma unidade única e rígida (como “um gráfico de pizza” ou “um gráfico de barras”), mas sim como uma construção em camadas de componentes independentes. A ideia é que qualquer visualização estatística pode ser descrita mapeando dados a atributos estéticos (cor, tamanho, forma) e objetos geométricos (pontos, linhas, barras) em um sistema de coordenadas. Implementação no ggplot2: Hadley Wickham implementou esse conceito no pacote ggplot2 através de um sistema de camadas somadas pelo operador +. Para construir um gráfico, o usuário define explicitamente esses componentes: Dados (Data): O dataset base. Mapeamento Estético (Aesthetics - aes): O que representa o eixo X, eixo Y, as cores, os tamanhos, etc. Geometrias (Geoms): A forma visual que representará os dados (geom_point, geom_bar, geom_line). Facetas (Facets): A divisão do gráfico em subplots baseados em categorias (facet_wrap). Estatísticas (Stats): Transformações nos dados (ex: contagem, média, regressão linear). Coordenadas (Coordinates): O espaço onde o gráfico é desenhado (cartesiano, polar). Temas (Themes): A aparência visual não relacionada aos dados (fundo, fontes, eixos).