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(carat > 4, label_key = carat) gghighlight
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> 4,
carat 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.
<- cranlogs::cran_downloads(
tab 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(max(count) > 100000, label_key = package) gghighlight
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.