Stop R Shiny анимация мертвых - PullRequest
0 голосов
/ 05 мая 2018

Моему приложению Shiny для анимации нужно много рисовать. Я могу изменить интервал анимации для сюжета с помощью ползунка управления.

Этот воспроизводимый пример отображает и анимирует случайные точки:

library(shiny)
library(ggplot2)
library(dplyr)

df <- data.frame(frame_no = rep(1:500,10), x = runif(5000), y=runif(5000))

ui <- fluidPage(

sliderInput("frameInterval", "Set frame Interval (ms.)", min=0, 
max=2000, value=100,step=50),

uiOutput("frameSlider"),
plotOutput("plot.positions", height=500, width = 500) 
)

server <- function(input, output, session) {

output$frameSlider <- renderUI( sliderInput("frame", label= h3("Animate"), 
          min=1, max = 5000, 
          value=1, step=1, sep=NULL,
          animate = animationOptions(interval = input$frameInterval, loop = 
          TRUE))
)

output$plot.positions <- renderPlot( {
    f <- filter(df, frame_no==input$frame)
    ggplot(f, aes(x=x, y=y)) + xlim(0,1) + ylim(0,1) +
    geom_point(aes(size=3)) +
    annotate("text", x= 0.5, y= 0.5, label=paste("Frame ", input$frame), 
    size=6)
},
bg="transparent"
  )
}
 shinyApp(ui = ui, server = server)

Проблема, с которой я столкнулся, заключается в том, что при небольшом интервале анимации (скажем, 100 мс) график отстает от ползунка, как показано путем сравнения значения ползунка и номера построенного кадра.

Затем, если я захочу приостановить анимацию, щелкнув паузу ползунка, дисплей продолжит работу, пока снова не догонит значение ползунка.

Есть ли способ мгновенно остановить анимацию, даже если она отстает?

Спасибо за любой совет.

1 Ответ

0 голосов
/ 24 мая 2018

На этот вопрос теперь есть ответ

https://community.rstudio.com/t/stop-shiny-animation-instantly/8709?u=istat

...