1 Objetivos:

  • Cobrir alguns conceitos básicos de visualização interativa
  • Talvez algo sobre gifs e animações?

2 Figuras interativas

Ter figuras estáticas é a aplicação mais comum de gráficos no R, mas o R também é capaz de criar figuras interativas que podem ser usadas em painéis e outras plataformas (como shiny ou quarto). Existem várias bibliotecas que permitem criar figuras interativas, uma das mais populares é chamada plotly. A melhor parte do plotly é que se você aprender a usar o ggplot, poderá transferir suas figuras para figuras interativas do plotly com facilidade. Vamos tentar isso.

Usamos a função ggplotly() da biblioteca plotly para fazer isso:

library(plotly) # carregar a biblioteca plotly
# Use a função ggplotly em uma das figuras que criamos anteriormente:
ggplotly(figures$bars)
tCaptures <- captures %>% 
  mutate(date = as.Date(date, "%d/%m/%y"), # Primeiro formatamos a data
         year = lubridate::floor_date(date, 'year')) %>%  # Em seguida, criamos uma variável formatando a data como o mês do ano
  count(year, trap_type) # Contar o número de observações por mês

Agora que temos nossas variáveis no formato correto, podemos usá-las como qualquer outra variável.

library(ggrepel)

lab <- tCaptures %>% 
  group_by(trap_type) %>% 
  filter(year == min(year))

figures$timeseries <- tCaptures %>% 
  ggplot() +
  geom_line(aes(x = year, y = n, col = factor(trap_type)), lwd = 1) +
  geom_label_repel(data = lab, aes(x = year, y = n, label = paste('Trap \n type: ', trap_type), fill = factor(trap_type)), alpha = 0.6, size = 3) +
  theme(
    axis.line.y = element_blank(),
    panel.background = element_rect(fill = 'ghostwhite'),
    axis.line.x = element_line(),
    panel.grid = element_blank(),
    panel.grid.major.y = element_line(colour = 'grey80'),
    legend.position = 'none'
  ) +
  scale_fill_manual(values = c('gold2', 'seagreen3', 'red2', 'orchid')) +
  scale_color_manual(values = c('gold2', 'seagreen3', 'red2', 'orchid'))

figures$timeseries