Использование блестящих индикаторов прогресса с gganimate - PullRequest
0 голосов
/ 11 марта 2019

Я создаю анимацию с 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)  
...