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