如何在光泽中逐个添加图形

Wol*_*lke 5 r shiny

我正在尝试为我的stat类做一些演示.除其他事项外,我想展示所涉及的一步一步的过程.有关我正在寻找的简化示例,请考虑以下小玩具R功能:

toyPlot <- function() {
  x <- 1:100/100
  y <- x+rnorm(100,0,0.2)
  plot(x,y)
  Sys.sleep(2)
  abline(lm(y~x))
  Sys.sleep(2) 
  title(main="Fitted Line Plot")
}
Run Code Online (Sandbox Code Playgroud)

它绘制一个散点图,等待两秒钟,添加LSR行,等待两秒钟,然后添加标题.

现在,当我在闪亮的情况下做同样的事情时,等待整整4秒,然后立即完整地完成图表.

我花了一些时间寻找解决方案,并发现了一些看起来很有用的命令(session $ onFlushed,invalidateLater,reactiveTimer),但我不能让他们中的任何一个做我想做的事.

Mat*_*rde 6

为什么不将绘图输出绑定到动画滑块的值?您可以使用来控制每个阶段的持续时间animationOptions

ui <- fixedPage(
    plotOutput('myplot'),
    sliderInput('myslider', 'Steps', min=1, max=3, value=1, animate=animationOptions())
)


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

    x <- 1:100/100
    y <- x + rnorm(100, 0, 0.2)

    pfs <- list(
        function() plot(x, y) ,
        function() abline(lm(y~x)),
        function() title(main='Fitted line plot')
    )

    output$myplot <- renderPlot({
        for (i in 1:input$myslider) pfs[[i]]()
    })

}

runApp(list(ui=ui, server=server))
Run Code Online (Sandbox Code Playgroud)