1 - Introdução

Este relatório tem como objetivo apresentar análises gráficas utilizando técnicas de visualização de dados por meio do pacote ggplot2 da linguagem R. Os gráficos desenvolvidos permitem explorar relações entre variáveis, distribuições e padrões presentes nos dados.

2 - Metodologia

Foram feitas análises nos conjuntos de dados “mtcars” e “diamonds”, disponibilizados de forma nativa no R. Empregou-se, conforme determinação da atividade, gráficos de dispersão, de barras e boxplot, seguindo os princípios da Gramática dos Dados.

Optou-se, ainda, por exibir neste relatório os códigos que geraram os gráficos, com o objetivo de demonstrar como foi realizado o desenvolvimento da atividade.

2.1 - Preparação do ambiente

Foram utilizadas as seguintes bibliotecas: “ggplot2”, “dplyr” e “scales”. Abaixo está a importação, no código, das referidas bibliotecas:

library(ggplot2)
library(dplyr)
library(scales)

3 - Análise Exploratória dos Dados

3.1 - Relação entre peso e consumo de combustível

O gráfico de dispersão a seguir ilustra a relação entre o peso dos veículos e o consumo de combustível, considerando o número de cilindros como variável categórica.

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

Observa-se uma relação inversa entre o peso do veículo e o consumo de combustível, de modo que veículos mais pesados apresentam menor eficiência.

3.2 - Distribuição de Diamantes por Tipo de Corte

O gráfico de barras abaixo apresenta a contagem de diamantes por tipo de corte, ordenada de forma crescente, permitindo identificar as categorias mais frequentes no conjunto de dados.

diamonds |>
  count(cut) |>
  arrange(desc(n)) |>
  ggplot(aes(x = reorder(cut, n), y = n, fill = cut)) +
  geom_col() +
  geom_text(
    aes(label = n),
    vjust = -0.3
  ) +
  scale_fill_brewer(palette = "Spectral") +
  labs(
    title = "Contagem de Diamantes por Tipo de Corte",
    x = "Tipo de Corte",
    y = "Quantidade"
  ) +
  theme_minimal() +
  theme(legend.position = "none")

Nota-se que o corte Ideal apresenta a maior quantidade de registros, demonstrando sua predominância no conjunto de dados analisado.

3.3 - Análise do Preço dos Diamantes por Tipo de Corte

O boxplot a seguir representa a distribuição dos preços dos diamantes conforme o tipo de corte, permitindo comparar medianas, dispersão e possíveis outliers.

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

Com base na análise percebe-se que os diamantes com corte Ideal apresentam maior variabilidade de preços, sugerindo uma ampla diversidade de características dentro dessa categoria que afetam o valor da peça. Com base nisso, se faz necessário analisar outros atributos dos diamantes que possam interferir de maneira mais significativa no valor.

4 - Conceitos Fundamentais de Visualização

4.1 - Diferença entre geom_point() e geom_jitter()

O geom_point() plota os pontos exatamente nas coordenadas obseradas, sendo mais adequado quando há pouca sobreposição entre os dados.

O geom_jitter() adiciona um pequeno deslocamento aleatório aos pontos, sendo indicado em situações com muitos valores repetidos ou sobrepostos, melhorando a legibilidade do gráfico.

4.2 - Gramática dos Dados

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

No ggplot2, esse conceito é implementado por meio da construção incremental dos gráficos utilizando o operador “+”, permitindo flexibilidade, clareza e reprodutibilidade na criação das visualizações.