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.
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.
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()
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()
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")
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")
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()
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.