Interface “drag and drop”​ para construção de gráficos no R


A linguagem R possui excelentes recursos para uma boa análise descritiva, principalmente quando o assunto é visualização de dados. No entanto, a necessidade de digitar algumas linhas de código para conseguir plotar determinado gráfico pode complicar o trabalho de quem ainda não tem tanta fluência com a linguagem, pois convenhamos que interromper toda hora a nossa linha de raciocínio para pesquisar “como fazer” atrapalha um pouco.

ggplot2 é um excelente pacote para visualização de dados, inclusive publiquei este post sobre ele, porém é necessário um pouco de prática até adquirir fluência para redigir suas linhas de código e, consequentemente, plotar os visuais desejados, entretanto, o pacote esquisse pode tornar a nossa vida um pouco mais fácil.

De acordo com a documentação do pacote, o esquisse é um add-in que nos permite explorar interativamente os dados, visualizando-os com o pacote ggplot2. Em outras palavras, ao invés de digitar linhas de código, basicamente o que precisamos é arrastar a soltar as variavés e pronto, o gráfico está construído!

Vamos ver como esta mágica funciona.

Passo a passo

Para este exemplo de uso vamos precisar somente dos pacotes esquisse e ggplot2:

install.packages("esquisse")
install.packages("ggplot2")

Em seguida carregamos os pacotes:

library(esquisse)
library(ggplot2)

A idéia aqui é utilizar o famoso conjunto de dados iris.

data(iris)

Aqui as primeiras linhas do dataset:

head(iris)
Não foi fornecido texto alternativo para esta imagem

Uma vez que os pacotes e o dataset estão carregados, basta chamar a função esquisser() passando o dataset como argumento:

esquisser(iris)
Não foi fornecido texto alternativo para esta imagem

E agora começa a brincadeira. Escolhi aleatoriamente a variável Sepal.Length e arrastei para o eixo x. Um histograma foi gerado automaticamente:

Não foi fornecido texto alternativo para esta imagem

Dependendo das variáveis em questão, é possível alterar o tipo do gráfico:

Não foi fornecido texto alternativo para esta imagem

Mas vamos continuar com o histograma. No menu Plot options encontramos configurações específicas do tipo de gráfico. Neste caso, podemos alterar, por exemplo, o número de bins:

Não foi fornecido texto alternativo para esta imagem

No menu Data é possível aplicar filtros no dataset:

Não foi fornecido texto alternativo para esta imagem

Arrastanto, por exemplo, a variável Petal.Length para o eixo y, temos um gráfico de dispersão:

Não foi fornecido texto alternativo para esta imagem

Podemos aumentar o tamanho dos pontos e alterar a cor, por exemplo:

Não foi fornecido texto alternativo para esta imagem

Ainda no menu Plot options é possível incluir uma curva de regressão não paramétrica, ativando Smooth line:

Não foi fornecido texto alternativo para esta imagem
Não foi fornecido texto alternativo para esta imagem

Arrastando uma variável categórica para group, agrupamos por categoria:

Não foi fornecido texto alternativo para esta imagem

Podemos criar facetas apenas arrastando uma variável categórica para facet:

Não foi fornecido texto alternativo para esta imagem

Para melhorar a visualização, podemos alterar o tema em Plot options:

Não foi fornecido texto alternativo para esta imagem
Não foi fornecido texto alternativo para esta imagem

Arrastando uma variável numérica para size, os tamanhos dos pontos são ajustados proporcionalmente:

Não foi fornecido texto alternativo para esta imagem

Podemos também criar um gráfico de barras. Para isto, basta arrastar uma variável categórica para o eixo x:

Não foi fornecido texto alternativo para esta imagem

Arrastando, por exemplo, a variável Sepal.Width para o eixo y, temos boxplots:

Não foi fornecido texto alternativo para esta imagem

E para colorir os gráficos em função de uma variável, basta arrastar a respectiva variável para fill:

Não foi fornecido texto alternativo para esta imagem

Podemos customizar título, subtítulo, legenda e etc…

Não foi fornecido texto alternativo para esta imagem
Não foi fornecido texto alternativo para esta imagem

E a ótima notícia para quem não domina o ggplot2: em Export & code é possível copiar o código gerado:

Não foi fornecido texto alternativo para esta imagem

Perceba que o gráfico gerado através do código exportado é exatamente o mesmo:

ggplot(iris) +
 aes(x = Species, y = Sepal.Width, fill = Species) +
 geom_boxplot() +
 scale_fill_hue() +
 labs(x = "Nome da Espécie", y = "Largura da Sépala", title = "Espécies de Iris", subtitle = "Exemplo utilizando Esquisse", caption = "Gráfico 1", fill = "Espécie") +
 theme_minimal()
Não foi fornecido texto alternativo para esta imagem

Considerações finais

A página do esquisse diz que o objetivo deste pacote é permitir a exploração rápida dos dados para extrair informações, mas alerta que não é possível ainda utilizar todo o poder do ggplot2. Ou seja, o esquisse esta aí para agilizar a nossa análise, mas diante da necessidade de gráficos com detalhes mais complexos, talvez não seja possível através dessa interface. Portanto faça bom uso do esquisse nas suas análises mas não deixe de praticar o ggplot2 raíz (por linhas de código).

Por Antonio Júnior
https://www.linkedin.com/in/juniorssz/

Referências e materiais úteis

Vídeo Esquisse e live: