{r setup, include=FALSE} # Configurações iniciais - este bloco não aparece no relatório final knitr::opts_chunk$set(echo = TRUE, message = FALSE, warning = FALSE)

Logomarca

{r logo, echo=FALSE, out.width=“200px”} knitr::include_graphics(“Logo.png”)

Introdução

Este relatório apresenta análises visuais utilizando a biblioteca ggplot2 do R, demonstrando diferentes tipos de gráficos e customizações.

Instalação e Carregamento de Pacotes

{r pacotes} # Primeiro, instalamos os pacotes necessários (só precisa fazer uma vez) # Descomente as linhas abaixo se for a primeira vez: # install.packages(“ggplot2”) # install.packages(“dplyr”) # install.packages(“scales”)

Carregando os pacotes

library(ggplot2) # Para criar gráficos library(dplyr) # Para manipulação de dados library(scales) # Para formatação de números


Exercício 1.1 - Introdução ao ggplot2

Scatter Plot: Peso vs Consumo de Combustível

Neste exercício, utilizamos o dataset mtcars para criar um gráfico de dispersão que mostra a relação entre o peso do carro (wt) e o consumo de combustível (mpg).

{r exercicio1} # Carregando o dataset mtcars (já vem instalado no R) data(mtcars)

Convertendo ‘cyl’ para fator (categoria) para as cores funcionarem corretamente

mtcars\(cyl <- as.factor(mtcars\)cyl)

Criando o gráfico de dispersão

ggplot(data = mtcars) + aes(x = wt, y = mpg, color = cyl) + geom_point(size = 3) + labs( title = “Relação entre Peso e Consumo de Combustível”, x = “Peso do Carro (1000 lbs)”, y = “Consumo (Milhas por Galão)”, color = “Cilindros” ) + theme_minimal()

Interpretação:

Observamos uma correlação negativa entre peso e consumo: carros mais pesados tendem a consumir mais combustível (menos milhas por galão). Além disso, carros com mais cilindros são geralmente mais pesados e menos econômicos.


Exercício 1.2 - Gráficos de Barras

Contagem de Diamantes por Corte

Utilizamos o dataset diamonds para visualizar a distribuição de diamantes por qualidade de corte.

{r exercicio2} # Carregando o dataset diamonds data(diamonds)

Criando uma tabela de contagem ordenada

contagem_cut <- diamonds %>% count(cut) %>% arrange(desc(n))

Criando o gráfico de barras

ggplot(data = contagem_cut) + aes(x = reorder(cut, -n), y = n, fill = cut) + geom_bar(stat = “identity”) + geom_text( aes(label = format(n, big.mark = “.”)), vjust = -0.5, size = 3.5 ) + scale_fill_brewer(palette = “RdYlBu”) + labs( title = “Distribuição de Diamantes por Qualidade de Corte”, x = “Qualidade do Corte”, y = “Quantidade de Diamantes”, fill = “Corte” ) + theme_minimal() + theme(legend.position = “none”) + ylim(0, max(contagem_cut$n) * 1.1)

Interpretação:

A maioria dos diamantes no dataset possui corte de qualidade “Ideal”, seguido por ”Premium”. O corte ”Fair”** (razoável) é o menos comum.


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

Boxplot: Preço por Qualidade de Corte

{r exercicio3} # Criando o boxplot customizado ggplot(data = diamonds) + aes(x = cut, y = price, fill = cut) + geom_boxplot() + scale_fill_manual( values = c( “Fair” = “#E74C3C”, “Good” = “#F39C12”, “Very Good” = “#27AE60”, “Premium” = “#3498DB”, “Ideal” = “#9B59B6” ) ) + labs( title = “Distribuição de Preços por Qualidade de Corte”, subtitle = “Dataset: diamonds”, x = “Qualidade do Corte”, y = “Preço (USD)” ) + scale_y_continuous(labels = dollar_format(prefix = “$”, big.mark = “.”)) + theme_minimal() + theme( legend.position = “none”, axis.text.x = element_text(angle = 45, hjust = 1, size = 10), plot.title = element_text(face = “bold”, size = 14), plot.subtitle = element_text(color = “gray50”) )

Interpretação:

Curiosamente, diamantes com corte “Fair” (menor qualidade) apresentam mediana de preço semelhante ou até superior aos demais. Isso pode indicar que outros fatores (como quilates) influenciam mais o preço do que a qualidade do corte.


Exercício 1.4 - Conceitos Fundamentais

Questão 1: Diferença entre geom_point() e geom_jitter()

geom_point()

  • Plota os pontos exatamente nas coordenadas especificadas
  • Quando usar: Quando os dados são contínuos e não há muita sobreposição de pontos

geom_jitter()

  • Adiciona um pequeno ruído aleatório às posições dos pontos
  • Quando usar: Quando há muitos pontos sobrepostos (especialmente com variáveis discretas/categóricas)

Exemplo Comparativo:

{r comparacao} # Dados para demonstração set.seed(42) dados_exemplo <- data.frame( categoria = rep(c(“A”, “B”, “C”), each = 50), valor = rnorm(150, mean = 10, sd = 2) )

Gráfico com geom_point()

p1 <- ggplot(dados_exemplo, aes(x = categoria, y = valor)) + geom_point(color = “blue”, alpha = 0.5) + labs(title = “geom_point()”, subtitle = “Pontos sobrepostos”) + theme_minimal()

Gráfico com geom_jitter()

p2 <- ggplot(dados_exemplo, aes(x = categoria, y = valor)) + geom_jitter(color = “red”, alpha = 0.5, width = 0.2) + labs(title = “geom_jitter()”, subtitle = “Pontos dispersos”) + theme_minimal()

Exibindo lado a lado

library(gridExtra) grid.arrange(p1, p2, ncol = 2)


Questão 2: Gramática dos Gráficos (Grammar of Graphics)

A Gramática dos Gráficos é um conceito desenvolvido por Leland Wilkinson que descreve gráficos estatísticos como uma combinação de componentes independentes e modulares.

Componentes Principais:

Componente Descrição Exemplo no ggplot2
Data Os dados a serem visualizados ggplot(data = mtcars)
Aesthetics Mapeamento visual (posição, cor, tamanho) aes(x = wt, y = mpg, color = cyl)
Geometries Formas geométricas que representam os dados geom_point(), geom_bar()
Facets Divisão em subgráficos facet_wrap(~cyl)
Statistics Transformações estatísticas stat_smooth()
Coordinates Sistema de coordenadas coord_flip()
Theme Aparência visual theme_minimal()

Implementação no ggplot2:

O ggplot2 implementa essa gramática usando o operador + para adicionar camadas ao gráfico:

r ggplot(data) + # Dados aes(… ) + # Estética geom_xxx() + # Geometria scale_xxx() + # Escalas theme_xxx() # Tema

Vantagem:

Essa abordagem modular permite criar gráficos complexos de forma sistemática e reprodutível, combinando componentes simples como blocos de construção.


Conclusão

Este relatório demonstrou as principais funcionalidades do ggplot2 para visualização de dados em R:

  1. Scatter plots para relações entre variáveis contínuas
  2. Gráficos de barras para dados categóricos
  3. Boxplots para distribuições
  4. Customizações de cores, temas e rótulos

A Gramática dos Gráficos oferece uma estrutura poderosa e flexível para criar visualizações informativas e esteticamente agradáveis.


Relatório gerado em r Sys.Date()