Personalizando temas do ggplot2 com o operador %+replace%

Os temas dos ggplot2, e suas extensões, são uma "mão na roda" quando trabalhamos com visualização de dados no R, mas nem sempre atendem todas as nossas necessidades. Neste breve tutorial exploramos como personalizar esses temas com um operador pouco conhecido do ggplot2: o operador %+replace%. Já ouviu falar dele?

O operador %+replace%

O operador %+replace% serve basicamente para modificar elementos de um determinado tema do pacote ggplot2. Portanto, se uma determinada estética no gráfico não agradou ou não ficou adequada, podemos modificar o elemento correspondente no tema utilizado na criação do gráfico. Isso é muito útil em relatórios de R Markdown quando optamos por definir um tema padronizado para todos os gráficos. Com essa personalização garante-se que todos os gráficos terão formatação equivalente.

Vamos a um exemplo, aqui utilizaremos o tema theme_clean() proveniente do pacote ggthemes, que é uma extensão do ggplot2 e oferece uma variedade maior de temas em relação ao que vem no ggplot2. O tema vem por padrão com essa cara:

# Instalar/carregar pacotes
if(!require("pacman")) install.packages("pacman")
pacman::p_load(
"ggplot2",
"ggthemes",
"magrittr"
)
# Visualização de dados com theme_clean() original
meu_grafico <- ggplot2::economics %>% 
ggplot2::ggplot(ggplot2::aes(x = date, y = pce)) +
ggplot2::geom_line(colour = "darkblue", size = 1.5) +
ggplot2::labs(
title = "Personal Consumption Expenditures (PCE)",
y = "US$ Bilhões",
x = "",
caption = "Fonte: FRED"
)
meu_grafico + ggthemes::theme_clean()

Essas linhas que contornam o gráfico podem ser inconvenientes, né? Portanto, vamos modificar esse elemento de forma a criar um tema personalizado. Para fazer isso, introduzimos o operador %+replace%.

O %+replace% pode ser utilizado de forma similar ao conhecido pipe (%>%), usamos ele no final da linha que especifica o tema com o elemento que queremos modificar e, na próxima linha, realizamos as modificações desejadas dentro da função theme() do pacote ggplot2. Por fim, para poder aplicar essa modificação do tema em um gráfico, colocamos o código dentro de uma função.

# Theme_clean() personalizado
theme_am <- function() {
ggthemes::theme_clean() %+replace%
ggplot2::theme(
plot.background = ggplot2::element_rect(colour = NA),
legend.background = ggplot2::element_rect(colour = NA)
)
}
# Visualização de dados com theme_clean() personalizado
meu_grafico + theme_am()


Simples e eficiente, não?

E uma dica extra para quem trabalha com relatórios em R Markdown: podemos utilizar a função theme_set() do pacote ggplot2 logo nas primeiras linhas de código do relatório para definir globalmente o tema de todos os gráficos do relatório.


# Configurar tema padrão
ggplot2::theme_set(theme_am())

Referências úteis

- Documentação do ggplot2: https://ggplot2.tidyverse.org/
- Documentação do ggthemes: https://jrnold.github.io/ggthemes/

________________________
(*) Para entender mais sobre a linguagem R e suas ferramentas, confira nosso Curso de Introdução ao R para análise de dados.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

O que é um Vector Database e como criar um com LangChain

Nesta postagem, mostramos como construir um pipeline simples de RAG (Retrieval-Augmented Generation) usando o LangChain, o modelo Gemini 2.0 Flash e o Vector Database Chroma. Utilizamos como exemplo o Relatório de Inflação de junho de 2025 do Banco Central do Brasil. O fluxo envolve o download e leitura do PDF, divisão do texto com RecursiveCharacterTextSplitter, geração de embeddings com Gemini, armazenamento vetorial com Chroma e busca semântica para responder perguntas com base no conteúdo do relatório. É uma aplicação prática e didática para economistas que desejam integrar IA ao seu fluxo de análise.

Automatizando a Construção de Códigos em Python com LangGraph

Neste post, mostramos como construir um agente de código em Python utilizando LangGraph, LangChain e Gemini. A proposta é construir um protótipo para automatizar o ciclo completo de geração, execução e correção de código com o uso de LLMs, organizando o processo em um grafo de estados.

Análise de Dados com REPL Tool e LLM usando LangGraph

Neste post, vamos mostrar como você pode criar um agente que interpreta e executa código Python em tempo real, utilizando o REPL-Tool e um LLM da família Gemini. Começamos com um exemplo genérico e, em seguida, aplicamos a mesma estrutura à análise econômica de uma série histórica do IPCA.

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.