
library(ggplot2)
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 (milhares de libras)",
y = "Milhas por Galão (MPG)",
color = "Cilindros (cyl)"
) +
theme_minimal() +
theme(
plot.title = element_text(hjust = 0.5, face = "bold"),
legend.position = "bottom"
)

# Adicionando o pacote dplyr para pré-cálculo
library(dplyr)
# 1. Pré-cálculo da contagem (frequência) e ordenação dos dados
dados_contagem <- diamonds %>%
group_by(cut) %>%
summarise(n = n()) %>%
ungroup() %>%
# 2. Ordena o fator 'cut' com base na contagem 'n'
mutate(cut = reorder(cut, n))
# 3. Gerar o gráfico usando os dados pré-calculados (stat="identity")
ggplot(dados_contagem, aes(x = cut, y = n, fill = cut)) +
# stat="identity" força o gráfico a usar a altura 'n' (contagem)
geom_bar(stat = "identity") +
# Rótulos de valor
geom_text(aes(label = n), vjust = -0.5, size = 4) +
# Paleta de Cores
scale_fill_brewer(palette = "Spectral", name = "Tipo de Corte") +
# Estética
labs(
title = "Contagem de Diamantes por Qualidade de Corte (Cut)",
x = "Qualidade do Corte",
y = "Número de Diamantes"
) +
theme_minimal() +
theme(
plot.title = element_text(hjust = 0.5, face = "bold"),
legend.position = "none"
)

# 2. Cria o boxplot personalizado
ggplot(data = diamonds, aes(x = cut, y = price, fill = cut)) +
geom_boxplot() +
labs(
title = "Distribuição de Preços de Diamantes por Tipo de Corte",
x = "Tipo de Corte",
y = "Preço (USD)"
) +
scale_fill_manual(
values = c("Fair" = "#E69F00", "Good" = "#56B4E9",
"Very Good" = "#009E73", "Premium" = "#F0E442",
"Ideal" = "#0072B2")
) +
theme_minimal() +
theme(
legend.position = "none",
axis.text.x = element_text(angle = 45, hjust = 1)
)

# 1. Diferença entre geom_point() e geom_jitter()
# geom_point(): Plota pontos exatamente em suas coordenadas. É melhor para dados contínuos e dispersos, onde poucos pontos se sobrepõem.
# geom_jitter(): Adiciona um pequeno ruído aleatório aos pontos para espalhá-los. É ideal para dados discretos ou com muitos valores repetidos, pois revela a densidade real dos dados e evita que os pontos fiquem escondidos uns atrás dos outros (overplotting).
# 2. Conceito de "Gramática dos Gráficos" e o ggplot2
# A "Gramática dos Gráficos" é um conceito modular para construir visualizações combinando peças independentes (dados, estética, geometria, escalas, etc.).
# O ggplot2 implementa essa ideia permitindo que você construa qualquer gráfico combinando esses componentes usando o operador +.
# Você começa com os dados.
# Mapeia variáveis para estética (eixos X/Y, cor, tamanho).
# Adiciona geometrias (pontos, barras, linhas).
# Adiciona facetas (múltiplos painéis) ou temas para finalizar a aparência.