{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)
{r logo, echo=FALSE, out.width=“200px”} knitr::include_graphics(“Logo.png”)
Este relatório apresenta análises visuais utilizando a biblioteca ggplot2 do R, demonstrando diferentes tipos de gráficos e customizações.
{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”)
library(ggplot2) # Para criar gráficos library(dplyr) # Para manipulação de dados library(scales) # Para formatação de números
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)
mtcars\(cyl <- as.factor(mtcars\)cyl)
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()
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.
Utilizamos o dataset diamonds para visualizar a distribuição de diamantes por qualidade de corte.
{r exercicio2} # Carregando o dataset diamonds data(diamonds)
contagem_cut <- diamonds %>% count(cut) %>% arrange(desc(n))
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)
A maioria dos diamantes no dataset possui corte de qualidade “Ideal”, seguido por ”Premium”. O corte ”Fair”** (razoável) é o menos comum.
{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”) )
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.
{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) )
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()
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()
library(gridExtra) grid.arrange(p1, p2, ncol = 2)
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.
| 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() |
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
Essa abordagem modular permite criar gráficos complexos de forma sistemática e reprodutível, combinando componentes simples como blocos de construção.
Este relatório demonstrou as principais funcionalidades do ggplot2 para visualização de dados em R:
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()