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