Questões Gerais - Dashboard

🛡️ 1ª RPM / 5º BPM – Análise de Dados 🛡️

Exercício 1.1 — Introdução ao ggplot2

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 carro (wt)",
y = "Consumo (mpg)",
color = "Nº de cilindros"
) +
theme_minimal()

Exercício 1.2 — Gráfico de Barras

diamonds$cut <- factor(
  diamonds$cut,
  levels = names(sort(table(diamonds$cut), decreasing = TRUE))
)
ggplot(diamonds, aes(x = cut, fill = cut)) +
  geom_bar() +
  geom_text(
    stat = "count",
    aes(label = after_stat(count)),
    vjust = -0.5,
    size = 4
  ) +
  scale_fill_brewer(palette = "RdYlBu", direction = -1) +
  labs(
    title = "Contagem de Diamantes por Tipo de Corte",
    x = "Tipo de Corte (cut)",
    y = "Quantidade",
    fill = "Corte"
  ) +
  theme_minimal()

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

ggplot(diamonds, aes(x = cut, y = price, fill = cut)) +
  geom_boxplot() +
  scale_fill_manual(
    values = c(
      "Fair"      = "#4575b4",
      "Good"      = "#91bfdb",
      "Very Good" = "#fee090",
      "Premium"   = "#fc8d59",
      "Ideal"     = "#d73027"
    )
  ) +
  labs(
    title = "Distribuição do Preço dos Diamantes por Tipo de Corte",
    x = "Tipo de Corte (cut)",
    y = "Preço (USD)"
  ) +
  theme_minimal() +
  theme(
    legend.position = "none",
    axis.text.x = element_text(angle = 45, hjust = 1),
    plot.title = element_text(face = "bold", size = 14)
  )

Exercício 1.4 — Conceitos Fundamentais

Diferença entre geom_point() e geom_jitter()

O geom_point() cria um gráfico de dispersão tradicional, posicionando cada ponto exatamente nas coordenadas definidas pelas variáveis mapeadas em x e y. É mais adequado quando não há muita sobreposição de pontos, ou seja, quando os dados não possuem muitos valores repetidos.

Já o geom_jitter() adiciona uma pequena variação aleatória (jitter) às posições dos pontos, deslocando-os levemente na horizontal e/ou na vertical. Isso é útil em situações de overplotting, quando muitos pontos possuem os mesmos valores de x e y e acabam ficando empilhados, dificultando a visualização da densidade dos dados.

Em resumo:

  • Use geom_point() quando:
    • Os dados têm pouca sobreposição.
    • Você quer representar precisamente cada observação nas suas coordenadas.
  • Use geom_jitter() quando:
    • Há muitos pontos sobrepostos.
    • É importante evidenciar a quantidade de observações em determinadas regiões do gráfico.

Gramática dos Gráficos e sua implementação no ggplot2

A Gramática dos Gráficos (Grammar of Graphics), proposta por Leland Wilkinson, define que qualquer visualização gráfica pode ser construída combinando componentes básicos, como:

  1. Dados – o conjunto de observações a ser representado.
  2. Estéticas (aesthetics) – o mapeamento de variáveis para propriedades visuais (x, y, cor, tamanho, forma, etc.).
  3. Geometrias (geoms) – o tipo de marca usada para representar os dados (pontos, linhas, barras, boxplots, etc.).
  4. Escalas (scales) – a forma como os valores dos dados são traduzidos em valores visuais (intervalos dos eixos, gradientes de cor, tamanhos, etc.).
  5. Facetas (facets) – divisão do gráfico em subpainéis com base em uma ou mais variáveis.
  6. Temas (themes) – aspectos estéticos não relacionados aos dados, como fonte, fundo, linhas de grade, margens.

O ggplot2 implementa essa gramática de forma declarativa: você especifica os dados, define os mapeamentos estéticos e adiciona camadas (geoms, scales, facets, themes) usando o operador +. Assim, gráficos complexos são construídos de maneira estruturada e consistente, combinando esses elementos de forma modular.