r-programmer

Linguagem R: gráficos com o ggplot2

Recentemente expliquei sobre como construir gráficos básicos com R, sem a utilização de muitos recursos. Neste artigo mostro como utilizar o ggplot2, recurso da biblioteca tidyverse, com ele será possível ter mais opções de gráficos e ferramentas para elaborar os seus estudos.

Instalando a biblioteca tidyverse.

O tidyverse possui alguns pacotes, entre eles o ggplot2. Caso você não tenha essa biblioteca no R, para instalar, basta digitar o comando a seguir:

install.packages("tidyverse")

Essa instalação traz alguns pacotes importantes como: o ggplot2, para visualização de dados; dplyr, para manipulação; readr, para importação; dentre outros que facilitam o trabalho do analista.

Depois, basta chamá-la no código do seu programa:

library(tidyverse)

Pronto, podemos iniciar!

Datasets utilizados para facilitar os ensaios.

Para os ensaios vou usar os datasets mtcars e diamonds

mtcars.

Também conhecido como “Motor Trend Car Road Tests”, são dados extraídos de carros entre os anos de 1973 e 1974, que compara modelos, consumo de combustível, e outras variáveis.

dataset mtcars
Dataset mtcars, com as colunas visíveis: mpg, cyl, disp, hp, drat e wt.

Os dados mais frequentes utilizados nesses ensaios serão: mpg, milhas por galão de combustível; e disp, que é o deslocamento do automóvel.

diamonds.

Trata-se do dataset que contém dados de preços, cortes, claridade, cor, dentre outras informações de qualidade de uma série de diamantes. As colunas que mais serão utilizadas são: cut, que é a qualidade do corte (bom, muito bom, premium, etc); color, a cor do produto, são classificadas por letras (D, E, F, G, H, I, J); e clarity, que pode ser entendida como a claridade ou brilho da peça.

dataset diamonds
Dataset diamonds e algumas de suas colunas: cut, color, clarity, depth, table, entre outras.

Anatomia básica dos gráficos com ggplot.

Entender a sintaxe básica é o caminho para a fixação do recurso e suas possibilidades. Perceba no trecho a seguir, ser necessário chamar: a função ggplot; os dados; determinar quais são os eixos x e y; e finalmente, os demais atributos.

ggplot(mtcars, aes(x=mpg, y=disp))

Se você tentar executar esse trecho, é provável que não apareça nada ou somente o gráfico vazio. Isso acontece, pois, é necessário você determinar, qual é o tipo de gráfico que será apresentado e eles podem ser vários como geom_point, geom_bar, geom_col, como veremos a seguir.

Histograma com geom_point.

Para esse caso, vou usar o geom_point() para montar o histograma que vai comparar o deslocamento e o consumo de combustível. Sendo assim, disp (deslocamento) fica no eixo y e mpg (consumo) no eixo x.

ggplot(mtcars, aes(x=mpg, y=disp)) + 
       geom_point()
histograma feito com geom_point no r
Histograma simples feito com o geom_point.

Também é possível determinar outros argumentos como: cores, nomes para x e y, entre outros, veja a seguir:

ggplot(mtcars, aes(y = mpg, x = disp)) + 
     geom_point(color = "red") + 
     xlab("Consumo de combustível") + 
     ylab("Deslocamento")

Esses parâmetros também funcionam nos outros gráficos apresentados a seguir.

Barras com geom_bar.

Para montar o gráfico de barras vou usar o geom_bar(), com o dataset diamonds, realizando a contagem da categoria, ou seja, a frequência de diamantes por qualidade (fair, good, very good, etc):

ggplot(data = diamonds, mapping = aes(x = cut, fill=color)) +
      geom_bar() 
gráfico de barras simples para a contagem de frequências
Contagem simples de frequências de qualidade, com o gráfico de barras.

No exemplo a seguir, são utilizadas colunas empilhadas, mostrando a frequência de cada categoria e dentro delas, como estão distribuídas as classificações de cores dos diamantes.

ggplot(data = diamonds, mapping = aes(x = cut, fill=color)) + 
      geom_bar() +
      xlab("Qualidade do corte") + 
      ylab("Quantidade")
gráfico de barras empilhadas no R
Gráfico de barras empilhadas com ggplot.

Colunas com x e y.

Se você quiser um gráfico de colunas com eixo x e y também é possível, nesse caso usará o geom_col(). A sintaxe é muito parecida com a anterior, com a diferença que é necessário determinar o eixo x e y.

ggplot(data = diamonds, mapping = aes(x = clarity, y= price)) +
      geom_col() +
      xlab("Claridade") + 
      ylab("Preço")
Gráfico de colunas com eixo x e y.
Gráfico de colunas com eixo x e y para entender a relação de claridade e preço dos produtos.

Radar para mostrar outras características.

É possível transformar o geom_bar() em um gráfico de radar? Sim! Basta adicionar coord_polar(). No trecho de código a seguir, vamos observar o quão claro são os diamantes.

ggplot(data = diamonds, mapping = aes(x = clarity, fill = clarity)) +
      geom_bar() +
      coord_polar()
gráfico radar no R
Gráfico radar para o comparativo de frequências.

Conclusão

O ggplot2 é um excelente recurso para exibir gráficos em seus estudos e apresentações. Se você fizer uma busca, vai encontrar diversas opções de gráficos, argumentos e maneiras de mostrar os dados.

Recomendo também, que você dê uma olhada no site do tidyverse onde estão as especificações do ggplot2, lá é possível encontrar mais informações e outras ideias de utilização.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *