Este relatório de Dados tem como objetivo o aprendizado de ferramentas de análise estatística e de visualização de dados, utilizando a linguagem de programação R.

Foram empregadas as seguintes ferramentas: ggplot2: ferramenta para criação de meios de visualização; dplyr: ferramenta para a manipulação/filtragem/organização de grandes volumes de dados.

Gráfico de Dispersão (mtcars)

Aqui, estuda-se a relação entre o consumo (milhas percorridas por galão de combustível) e o peso do carro.

library(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 = "Milhas por galão (mpg)",
    color = "Cilindros"
  ) +
  theme_minimal()

Gráfico de Barras (diamonds)

Aqui, é mostrada a contagem de diamantes por qualidade de corte.

library(ggplot2)
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
diamonds %>%
  count(cut) %>%
  ggplot(aes(x = reorder(cut, -n), y = n, fill = cut)) +
  geom_col() + 
  geom_text(aes(label = n), vjust = -0.5) +
  scale_fill_brewer(palette = "RdYlBu") +
  labs(
    title = "Contagem por Qualidade de Corte",
    x = "Corte",
    y = "Quantidade",
    fill = "Corte"
  ) +
  theme_minimal()

Boxplot de Preços (diamonds)

Aqui, estuda-se a relação entre o preço dos diamantes e a qualidade do corte dos mesmos.

library(ggplot2)

# Criando o Boxplot com customizações solicitadas

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

Teoria e Gramática dos Gráficos

Diferença entre geom_point() e geom_jitter()

O geom_point() plota os pontos exatamente nas coordenadas (x,y), sendo ideal para dados contínuos e precisos, onde se espera verificar relações exatas entre as variáveis.

O geom_jitter() adiciona um pequeno deslocamento aleatório (ruído) às posições de cada ponto, sendo indicado para dados discretos ou quando há muita sobreposição dos ponto; este pequeno ruído aleatório faz com que pontos que estejam sobrepostos não mais estejam, o que facilita a identificação da real massa de dados, identificando melhor, assim, os locais de maior concentração (densidade) – ex.: mapa de pontos de ocorrências por endereço exato; se não houver algum recurso que possibilite a contagem de ocorrências sobrepostas (ex.: pelo diâmetro do círculo correspondente ao ponto), a reincidência (ou seja, a maior concentração) não é notada, já que todas as ocorrências seriam visualizadas como apenas um único ponto.


O conceito de “Gramática dos Gráficos”

A Gramática dos Dados define a visualização como a combinação de componentes independentes de um gráfico, tais como dados, mapeamentos estéticos, geometrias, escalas e temas.

No ggplot2, essa gramática é implantada com o uso do operador +**, permitindo construir a visualização passo a passo:

  1. Data (Dados): o dataset (conjunto de dados) bruto (ex: mtcars).

  2. Aesthetics (Estética - aes): o mapeamento de quais colunas vão para o eixo X, Y, cores ou tamanhos.

  3. Geoms (Geometrias - geom): define a forma física do gráfico (áreas, pontos, barras, linhas).

  4. Scales (Escalas): controle de cores e eixos.

  5. Themes (Temas): controla a aparência visual (fundo, fontes, grades).

  6. Coordinates (Coordenadas): define o sistema de coordenadas a ser utilizado (cartesiano ou polar).

  7. Statistics (Estatísticas - stat): as transformações que os dados poderão sofrer (ex.: média, mediana, histograma, etc..).

  • Atividade elaborada por: Samuel Marcos Aparecido Moitinho