Introdução

Começe por aqui
data-visualization
ggplot2
tutorial-R
Author

Vinicius Oike

Published

July 6, 2023

Introdução ao ggplot2: Criando Visualizações

Nesta série, exploraremos uma das ferramentas mais poderosas e versáteis para visualização de dados - o pacote {ggplot2}.

A visualização de dados desempenha um papel fundamental na compreensão e comunicação de dados. O pacote ggplot2, desenvolvido por Hadley Wickham, é amplamente reconhecido como uma das melhores opções para a criação de gráficos esteticamente elegantes e informativos: atualmente, o ggplot2 é utilizado nas melhores publicações acadêmicas e pelos melhores jornalistas de dados1.

Abaixo seguem alguns aspectos fundamentais do ggplot2.

  1. Grammar of graphics: O ggplot2 cria gráficos seguindo uma abordagem consistente e “construtiva” baseada numa “gramática”. Essencialmente, montamos os gráficos somando elementos estéticos individualmente; isto significa que você pode criar visualizações complexas a partir de um pequeno conjunto de componentes gráficos. Este é um conceito fundamental e sua poderosa versatilidade ficará mais evidente com a prática.

  2. Gráficos elegantes: O ggplot2 é permite criar gráficos de alta qualidade e visualmente atraentes, que vão imbuir seu trabalho de profissionalismo.

  3. Personalização: O ggplot2 oferece uma ampla gama de opções de personalização, permitindo que você ajuste cada aspecto do seu gráfico. Pode-se modificar cores, fontes, tamanhos, e muito mais para atender às suas necessidades específicas.

  4. Recursos adicionais: a popularidade quase universal do ggplot2 significa que há diversos recursos riquíssimos para explorar. A lista oficial inclui mais de 100 pacotes que oferecem diversas funções que potencializam o ggplot2.

Ao longo desta série de tutoriais, abordaremos os conceitos fundamentais do ggplot2 e guiaremos você passo a passo na criação de visualizações incríveis. Desde a construção de gráficos básicos até técnicas mais avançadas, você aprenderá a aproveitar todo o potencial do ggplot2 para apresentar e analisar seus dados de forma impactante.

Se você está animado para começar, vá aqui para acessar o primeiro tutorial da série.

Para conhecer um pouco mais das potencialiades do ggplot2 veja, por exemplo:

Roteiro

O conteúdo destes posts segue uma filosofia básica: aprender a programar envolve prática e repetição. A melhor maneira de consumir este material é reescrevendo as linhas de código e executando elas.

O material começa com quatro gráfico fundamentais. A apresentação do texto nestes posts é introdutória e supõe conhecimento nenhum de R. Os textos começam com a instalação do pacote ggplot2 e discutem brevemente o que é um pacote e como escrever linhas de código no R.

  • Gráfico de dispersão (ou scatterplot)

  • Gráfico de coluna/barra

  • Gráfico de histograma

  • Gráfico de linha

Antes de introduzir outros tipos de gráfico, foco em alguns aspectos essenciais de gráficos. É importante que um gráfico seja o mais autoexplicativo possível. A maneira mais simples e efetiva de fazer isto é com títulos, legendas e caixas de texto; mas há também outras formas mais sutis de alcançar este objetivo: destacando certas áreas do gráfico ou usando cores chamativas.

  • Plotando texto e destacando observações.

  • Escalas, legendas e temas (scales, labels and themes).

  • Guia básico de cores e temas.

Os quatro gráficos acima costumam ser a base de qualquer análise e vão resolver o seu problema em 90% dos casos. Depois, introduzo alguns gráficos diferentes:

  • Facet plots

  • Gráficos lollipop

  • Gráficos de área

  • Gráficos de tile (ou mapas de calor)

Por fim, vou discutir algumas extensões populares do ggplot2 e mostrar algumas estratégias para produzir gráficos de qualidade em grande escala.

  • Extensões: indo muito além do básico

  • Produção: gráficos em grande escala

Para produzir boas visualizações é preciso também conhecimento sobre manipulação e limpeza de dados. Nos primeiros posts, eu propositalmente evito ao máximo qualquer manipulação para focar somente nas funções de visualização. Contudo, à medida que o material vai avançando vou utilizando cada vez mais funções do pacote {tidyverse} que acredito ser o melhor para manipulação de dados. Para introduzir e revisar algumas informações importantes vou incluir também um post sobre isto.

  • Apêndice: manipular para enxergar

Sobre copiar e colar

Copiar e colar é uma opção tentadora, mas que pode atrapalhar seu aprendizado: se você sempre copia e cola você evita de cometer erros; e cometer erros é parte importante de aprender algo novo.

Considere o código abaixo. Se eu executo ele numa nova sessão de R eu encontro um erro.

ggplot(mtcars, aes(x = wt, y = MPG)) +
  geom_point()
Error in ggplot(mtcars, aes(x = wt, y = MPG)): could not find function "ggplot"

O retorno do comando acima indica que não foi possível encontrar a função ggplot. Isto acontece porque eu esqueci de carregar o pacote ggplot2. Para carregar o pacote eu rodo library(ggplot2). O comando agora retorna um novo erro.

library(ggplot2)

ggplot(mtcars, aes(x = wt, y = MPG)) +
  geom_point()
Error in `geom_point()`:
! Problem while computing aesthetics.
ℹ Error occurred in the 1st layer.
Caused by error:
! object 'MPG' not found

Agora temos um novo erro: o objeto MPG não foi encontrado. Talvez seja um erro de digitação. Vamos conferir o nome das colunas da base de dados mtcars usando a função names().

names(mtcars)
 [1] "mpg"  "cyl"  "disp" "hp"   "drat" "wt"   "qsec" "vs"   "am"   "gear"
[11] "carb"

De fato, após a verificação, vemos que a variável mpg é minúscula. Agora o comando funciona.

ggplot(mtcars, aes(x = wt, y = mpg)) +
  geom_point()

O processo iterativo de tentativa e erro é parte natural e rotineira da tarefa de programação. É importante entender que o seu código provavelmente não vai funcionar “de primeira” (e às vezes nem de segunda, nem de terceira…). É normal errar e devemos aproveitar o fato que as mensagens de erro do R costumam ser bastante instrutivas!

Footnotes

  1. Portais de notícias como BBC, Financial Times e The Economist montam muitas de suas visualizações usando ggplot2. Em alguns casos existem até pacotes abertos como o {bbplot} que ajudam a fazer gráficos no mesmo estilo da publicação. Jornais nacionais como o Nexo também utilizam bastante gráficos feitos usando ggplot2.↩︎