平滑过渡renderPlot有光泽的R

时间:2017-02-09 11:36:19

标签: r shiny rendering

我使用this approach在Shiny中制作了动画 我发现的问题是从绘图到绘图的过渡有点卡住(绘图区域在处理下一个绘图时淡出)。

我想保留先前的情节直到下一个准备就绪。 有没有办法从一个renderPlot转换到下一个renderPlot,避免对前一个绘图的淡出效果?

下面我列出了一个最小的工作示例。如果您的计算机没有卡住,只需增加K,它最终会。

library(shiny)
library(ggplot2)
k<-50000L
data=data.frame(x=runif(k),y=runif(k))

runApp(list(
  ui =fluidPage(
    tags$head(tags$style(".rightAlign{float:right;}")),
    headerPanel("Cost Explorer"),

    sidebarPanel(
      actionButton("goButton", "Go!"),
      actionButton("reset", "Reset")  ),
      mainPanel(fluidRow(column(8,
      plotOutput(outputId="tsplot"),class = 'rightAlign')))),

  server=function(input, output, session) {

  datareactive<-reactiveValues(data=data)
  t <- reactiveValues(counter=1)

  observe({
    isolate({   
      t$counter=t$counter+1;
      datareactive$data<-data.frame(x=runif(k),y=runif(k))
    })
      if ((input$goButton > 0)){
        invalidateLater(200, session)
      }



  })

    output$tsplot <- renderPlot({
      ggplot(datareactive$data,aes(x,y))+geom_point()+coord_fixed()+
      theme_bw()+
      geom_path(data=datareactive$data[(k-10):k,],aes(x,y),size=1.1,
                colour="blue")+
      geom_point(data=datareactive$data[k,],aes(x,y),
                   colour="red")
    })

  }
))

0 个答案:

没有答案