8.2 Extensões do pacote ggplot2
O site ggplot2 extensions tem uma galeria com diversos pacotes que deixam o ggplot2 bem mais poderoso, indo de novos geoms até animações.
A seguir, listamos algumas das mais famosas.
8.2.1 gghighlight
O gghighlight é uma extensões do {ggplot2} que serve para realçar partes de um gráfico feito com ggplot.
A seguir, mostramos como utilizar essa extensão para realçar gráficos de pontos e linhas.
Realçando pontos
Muitas vezes temos um gráfico de dispersão em que queremos realçar alguns pontos de acordo com alguma característica. Por exemplo, abaixo estamos realçando os pontos que possuem carat > 4, além disso colocamos uma label em cada um.
diamonds %>%
ggplot(aes(x = carat, y = price)) +
geom_point() +
gghighlight::gghighlight(carat > 4, label_key = carat)
Também é possível configurar a cor dos pontos que serão realçados e dos que não serão, bem como o estilo das labels.
diamonds %>%
ggplot(aes(x = carat, y = price)) +
geom_point(color = "red") +
gghighlight::gghighlight(
carat > 4,
label_key = carat,
unhighlighted_params = list(colour = "black"),
label_params = list(size = 10, fill = "grey")
)
Realçando linhas
Com o {gghighlight} também é possível realçar linhas em um gráfico que possui varias linhas. Isso é interessante quando você quer ver como uma série temporal se compara com relação à um conjunto de outras séries.
No gráfico a seguir mostramos o número de downloads de cada um dos pacotes do tidyverse no ano de 2019. Uma das séries se destaca por mudar de padrão no meio do ano. Usamos o {gghighlight} para destacá-la no gráfico.
tab <- cranlogs::cran_downloads(
packages = tidyverse::tidyverse_deps()$package,
from = "2019-01-01", to = "2019-12-31"
)
tab %>%
ggplot(aes(x = date, y = count, group = package)) +
geom_line() +
gghighlight::gghighlight(max(count) > 100000, label_key = package)
Para mais informações sobre o {gghighlight}, recomendamos a leitura da excelente documentação oficial.
8.2.2 ggridges
A extensão {ggridges} é uma ótima alternativa para histogramas e boxplots, quando queremos comparar a distribuição de uma variável A em vários níveis de uma variável B.
Primeiro, instale o pacote.
install.packages("ggridges")No gráfico abaixo, comparamos a distribuição da receita dos filmes em cada um dos anos de 2005 a 2016. Para isso, utilizamos o novo geom_density_ridges(), disponibilizado pelo pacote {ggridges}.
library(ggridges)
imdb %>%
filter(ano > 2005) %>%
mutate(ano = as.factor(ano)) %>%
ggplot(aes(y = ano, x = receita, fill = ano)) +
geom_density_ridges(na.rm = TRUE, show.legend = FALSE)## Picking joint bandwidth of 11100000

Você pode baixar a base IMDB utilizada clicando aqui.