在闪亮的应用中将地块保存在for循环中

时间:2018-08-29 22:12:19

标签: r shiny

我有这段代码,可以在一个闪亮的应用程序的每个循环中生成多个图表。我希望用户能够单击该图。

是否有一种方法可以使它成为普通的for循环(不带有watchEvent),保存在循环中创建的图,然后让用户单击输出的图,而不是在循环内显示图?

例如,在R Studio中,在循环窗口中创建的所有绘图都显示在绘图窗口中,您可以在它们之间单击。

library(shiny)
server <- function(input, output, session) {          
  # data
  v <- c(9,8,7,8,9,5,6,7,4,3)
  w <- c(3,4,2,3,3,3,2,3,4,5)
  x <- c(1,3,4,6,2,4,6,8,6,3)
  y <- c(4,5,2,4,2,1,2,5,7,8)
  z <- c(5,9,8,6,4,6,8,9,6,7)
  df <- data.frame(v, w, x, y, z)

  # initial plot that will allow user to change parameters (haven't implemented yet)
  output$plot <- renderPlot(plot(df[[1]],df[[2]]))        

  count<-0   # This is the counter which keeps track on button count

  observeEvent(input$run, {
    count <<- count + 1 # Increment the counter by 1 when button is click
    if(count<6){
      # Draw the plot if count is less than 6
      output$plot <- renderPlot(plot(df[[1]],df[[count]],main = count))
      output$plot <- renderPlot(plot(df[[3]],df[[count]],main = count))
    }
    else{
      # Reset the counter if it is more than 5
      count <- 0
    }             
  })
}

ui <- fluidPage(
  actionButton("run", "Generate"),
  plotOutput("plot")
)

shinyApp(ui = ui, server = server)

0 个答案:

没有答案