ggplot(mtcars, aes(x = wt, y = MPG)) +
geom_point()
Error in ggplot(mtcars, aes(x = wt, y = MPG)): could not find function "ggplot"
Vinicius Oike
July 6, 2023
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
.
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.
Gráficos elegantes: O ggplot2
é permite criar gráficos de alta qualidade e visualmente atraentes, que vão imbuir seu trabalho de profissionalismo.
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.
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:
ggplot2
e o tidyverse
A galeria de Thomas Lin Penderson, que usa ggplot2
e extensões para fazer arte generativa.
A galeria com mais de 120 extensões (pacotes adicionais criados para apoiar o ggplot2
) da Posit.
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.
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.
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.
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()
.
De fato, após a verificação, vemos que a variável mpg
é minúscula. Agora o comando funciona.
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!
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
.↩︎