Skip to content

R ggplot2 Quickstart: Receitas Rápidas para Gráficos Confiáveis

Problem

Analistas têm dificuldade em produzir gráficos consistentes em R quando os prazos são apertados. Alternar entre geoms, escalas e temas sem um modelo leva a visuais poluídos e retrabalho constante.

Agitate

Estéticas mal colocadas, legends esquecidas e escalas de cores desalinhadas criam gráficos que induzem stakeholders ao erro. O tempo é gasto ajustando defaults em vez de focar no sinal.

Solution

Use um conjunto compacto de receitas de ggplot2 que mantenham as estéticas explícitas, separem mapeamentos de configurações fixas e apliquem um tema limpo. Os padrões abaixo cobrem os tipos de gráfico mais pedidos e como usar facet para comparações.

Scatter: relacionamentos e linhas de tendência

library(ggplot2)
 
ggplot(mtcars, aes(x = wt, y = mpg, color = factor(cyl))) +
  geom_point(size = 3, alpha = 0.8) +
  geom_smooth(method = "lm", se = FALSE, linewidth = 0.8) +
  labs(color = "Cylinders", x = "Weight", y = "MPG") +
  theme_minimal()

Line: séries temporais ou categorias ordenadas

ggplot(economics, aes(x = date, y = unemploy)) +
  geom_line(color = "#1f77b4", linewidth = 1) +
  labs(x = "Date", y = "Unemployment") +
  scale_x_date(date_breaks = "2 years", date_labels = "%Y") +
  theme_minimal()

Bar: contagens ou totais

ggplot(diamonds, aes(x = cut, fill = cut)) +
  geom_bar(width = 0.7, color = "white") +
  labs(x = "Cut", y = "Count") +
  theme_minimal() +
  theme(legend.position = "none")

Box and violin: comparações de distribuições

ggplot(iris, aes(x = Species, y = Sepal.Length, fill = Species)) +
  geom_violin(alpha = 0.4, color = NA) +
  geom_boxplot(width = 0.18, outlier.shape = NA, alpha = 0.8) +
  labs(x = NULL, y = "Sepal Length") +
  theme_minimal() +
  theme(legend.position = "none")

Facets para comparações rápidas

ggplot(diamonds, aes(carat, price, color = cut)) +
  geom_point(alpha = 0.4, size = 1.5) +
  facet_wrap(~ color) +
  labs(x = "Carat", y = "Price") +
  theme_light()

Geoms e melhores casos de uso

GeomTipo de dadoMelhor paraDica
geom_point()numérico vs numéricorelacionamentos, clustersFaça map de cor/formato para categorias; adicione geom_smooth() para tendência.
geom_line()x ordenado, y numéricoséries temporais, sequênciasMantenha uma linha por grupo com group=; evite erros de ordenação.
geom_bar() (contagem) / geom_col() (pré-agregado)categóricocontagens ou totaisUse position = "fill" para porcentagens.
geom_boxplot()categórico vs numéricocomparar medianas/IQRCombine com coord_flip() para labels longos.
geom_violin()categórico vs numéricoforma da distribuiçãoCombine com boxplots para mostrar quartis.
geom_histogram()único numéricodistribuiçãoDefina bins ou binwidth explicitamente.

Estéticas vs. configurações fixas

  • Faça map de dados dentro de aes(): aes(color = species).
  • Defina valores fixos fora de aes(): geom_point(color = "steelblue").
  • Use funções scale_* para formatar valores e controlar paletas.

Checklist de tema e rotulagem

  • Comece com theme_minimal() ou theme_light() para defaults limpos.
  • Adicione labs(title, subtitle, caption) para contexto; mantenha eixos concisos.
  • Oculte legends redundantes com theme(legend.position = "none") quando as cores duplicarem facets ou labels.
  • Para publicação, ajuste tamanhos de fonte via theme(text = element_text(size = 12)).

Template inicial

base_plot <- ggplot(data, aes(x = x_var, y = y_var)) +
  geom_point(color = "#4e79a7", alpha = 0.7) +
  labs(
    title = "Headline metric",
    x = "X axis",
    y = "Y axis",
    caption = "Source: internal data"
  ) +
  theme_minimal()

Guias relacionados