Я создаю анимацию с gganimate
. Это займет некоторое время, поэтому я хотел бы использовать блестящие прогресс бары, чтобы дать обратную связь. Однако все примеры, которые я вижу, включают размещение команды update_progress в цикле.
Как можно использовать блестящие индикаторы выполнения с gganimate, когда у меня нет доступа к его внутренним компонентам?
Документация gganimate гласит:
Прогресс дает вам прогресс анимации в текущем кадре (равный кадру / nframes)
Хотя я не уверен, как использовать эту информацию.
После нажатия кнопки это простое блестящее приложение отображается в течение нескольких секунд. В консоли RStudio есть текстовый индикатор прогресса. В идеале пользователю может быть показан индикатор выполнения.
library(shiny)
library(ggplot2)
library(gganimate)
ui <- fluidPage(
plotOutput("anim_plot"),
fluidRow(
column(3,
actionButton("make_plot", "Create")
)
)
)
server <- function(input, output, session) {
library(shiny)
observeEvent(input$make_plot, {
output$anim_plot <- renderPlot({
ggplot(mtcars, aes(factor(cyl), mpg)) +
geom_boxplot() +
transition_states(
gear,
transition_length = 2,
state_length = 1
) +
enter_fade() +
exit_shrink() +
ease_aes('sine-in-out')
})
})
}
shinyApp(ui = ui, server = server)