Artigo escrito por Rafael Toledo
Neste artigo iremos apresentar dois pacotes do software R que têm como finalidade auxiliar na construção de gráficos para análise gráfica. Os pacotes são patchwork e ggiraph, sendo que o primeiro pacote é responsável pela criação de composições gráficas, enquanto o segundo pacote torna dinâmico os gráficos gerados com o pacote ggplot2.
Pacote patchwork: Composições gráficas

O objetivo do pacote patchwork é tornar simples a combinação de ggplots separados no mesmo gráfico. Por meio deste pacote é possível construir composições com vários gráficos de maneira rápida e fácil.
A instalação do pacote é feita por meio da função install.packages(“patchwork”).
# install.packages("ggplot2") # Instalando o pacote ggplot2 - Análise gráfica
# install.packages("patchwork") - Instalando o pacote patchwork - Composições gráficas
library(ggplot2) # Carregando a biblioteca do pacote ggplot2
library(patchwork) # Carregando a biblioteca do pacote patchwork
Usando novamente o conjunto de dados mtcars, iremos construir quatro gráficos e realizar a composição desses gráficos. Este pacote é útil quando o intuito é apresentar vários gráficos em uma mesma figura.
# Conjunto de dados do R
mtcars <- mtcars
attach(mtcars)
# Construção dos gráficos
grafico_1 <- ggplot(mtcars) +
geom_point(aes(mpg, disp)) +
ggtitle('Gráfico 1')
grafico_2 <- ggplot(mtcars) +
geom_boxplot(aes(gear, disp, group = gear)) +
ggtitle('Gráfico 2')
grafico_3 <- ggplot(mtcars) +
geom_point(aes(hp, wt, colour = mpg)) +
ggtitle('Gráfico 3')
grafico_4 <- ggplot(mtcars) +
geom_bar(aes(gear)) +
facet_wrap(cyl) +
ggtitle('Gráfico 4')
Criando composições
Composição 1
Usamos o operador + ou | para colocar os gráficos lado a lado (colunas). Veja o exemplo abaixo:
grafico_1 + grafico_2 + grafico_3

# Outra forma:
# grafico_1 | grafico_2| grafico_3
Composição 2
Usamos o operador / para colocar os gráficos em cada linha. Veja o exemplo abaixo:
grafico_1 / grafico_2

Composição 3: Combinando os dois operadores
(grafico_1 + grafico_2 + grafico_3) / grafico_4

(grafico_3+(grafico_1 / grafico_2))/grafico_4

Utilizando os dois operadores, é possível realizar diversas combinações gráficas de acordo com o objetivo, bem como organizar o código.
Modificando as composições
O pacote permite que possamos realizar algumas mudanças nas composições criadas, como por exemplo, incluir títulos e subtítulos. Vamos exemplificar a inclusão de título, subtítulo e fonte por meio da função plot_annotation. Esta função permite a inclusão de anotações nos gráficos, o que facilita e ajuda na estética dos gráficos das respectivas composições. Vale ressaltar que o tema escolhido e definido no código será aplicado a todos os demais gráficos. Dessa forma, temos o resultado da composição final definido da seguinte forma:
((
# Gráfico
(# Primeira linha
(grafico_1 + grafico_2) /
# Segunda linha
grafico_4)
) +
plot_annotation(
title = "Título",
subtitle = "Subtítulo",
caption = "Fonte dos dados"
)) &
theme_bw()

Pacote ggiraph: Gráficos ggplot dinâmicos

O pacote ggiraph é uma ferramenta que permite criar gráficos ggplot dinâmicos no software R. O objetivo desse pacote é possibilitar a construção de gráficos dinâmicos pacote ggplot2. Ele é utilizado quando se deseja fornecer aos leitores mais informações do que apenas o layout padrão de informações básicas disponíveis. Pode ser considerado uma alternativa caso não tenha utilizado outros pacotes como plotly e highcharter.
A instalação do pacote é feita por meio da função install.packages(“ggiraph”). Vale ressaltar que é necessário ter instalado o pacote ggplot2 no software R, pois o ggiraph utiliza das funções do ggplot2 para criar os gráficos dinâmicos.
# Instalando os pacotes e carregando as bibliotecas
# install.packages("ggplot2") # Instalando o pacote ggplot2 - Análise gráfica
# install.packages("ggiraph") # Instalando o pacote ggiraph - Gráfico dinâmico
library(ggplot2) # Carregando a biblioteca do pacote ggplot2
library(ggiraph) # Carregando a biblioteca do pacote ggiraph
Vamos criar uma nova coluna com as linhas dos nomes dos carros do conjunto de dados. E após a criação desta coluna, construiremos um gráfico de pontos com o pacote ggplot2.
dados <- mtcars
# Criando uma coluna nomeada names_carros com as linhas dos nomes dos carros
dados$names_carros <- row.names(dados)
# Construindo gráfico de pontos com ggplot2
grafico_pontos = ggplot(data = dados) +
geom_point_interactive(aes(x = wt, y = qsec, color = disp,
tooltip = names_carros, data_id = names_carros)) +
theme_minimal()
Após a construção do gráfico de pontos com o pacote ggplot2, é possível transformar o referido gráfico em dinâmico por meio da função girafe(). Abaixo são apresentados duas formas distintas de usar a referida função:
# Gráfico dinâmico com ggiraph
girafe(ggobj = grafico_pontos)

girafe(code = print(grafico_pontos))

Na figura acima é possível visualizar que o gráfico de pontos para o conjunto de dados mtcars do R. Foram utilizadas as variáveis “disp” (Displacement (cu.in.) – Deslocamento) e “qsec” (1/4 mile time – tempo milha), e nota-se que o gráfico agora é dinâmico.
O que isso quer dizer? Ao passar o cursor do mouse em um determinado ponto, é possível obter a informação referente aquele ponto. No exemplo da figura é possível saber qual veículo está em cada ponto.
Gostou? Não se esqueça de acompanhar o blog para os próximos artigos com dicas de pacotes do R. Qualquer dúvida deixe nos comentários!
Referências
Documentação do conjunto de dados mtcars: Disponível em: https://www.rdocumentation.org/packages/datasets/versions/3.6.2/topics/mtcars
Documentação do pacote ggiraph: Disponível em: https://cran.r-project.org/web/packages/ggiraph/index.html
Github: Disponível em: https://davidgohel.github.io/ggiraph/