R Shiny eventReactive actionBotton交互

时间:2016-08-24 06:51:47

标签: r shiny

我有actionBotton从数据集mtcars的前5列中随机选取一列并绘制它。

现在actionBotton可以完成它的工作,但是当应用程序启动时,图表不会在第一个位置绘制。

启动Shiny应用程序时是否有任何方法可以绘制它。

library(shiny)

server <- function(input, output) {
  X = eventReactive(input$plot,{
    mtcars
  })
  output$plot = renderPlot({
    i = sample(1:5,1)
    plot(X()[,i],ylab=names(mtcars)[i])
  })
}

ui <- fluidPage(
  actionButton("plot","randomly plot"),
  plotOutput("plot")

)

shinyApp(ui = ui, server = server)

1 个答案:

答案 0 :(得分:3)

您可以添加条件是未单击按钮。请注意,该按钮用作计数器,因此如果未单击该按钮,则该值将为0.

library(shiny)

server <- function(input, output) {
  X = eventReactive(input$plot,{
    mtcars
  })
  output$plot = renderPlot({
    i = sample(1:5,1)
    if(input$plot == 0){
      return(plot(mtcars[,i],ylab=names(mtcars)[i]))
    }
    plot(X()[,i],ylab=names(mtcars)[i])
  })
}

ui <- fluidPage(
  actionButton("plot","randomly plot"),
  plotOutput("plot")

)

shinyApp(ui = ui, server = server)

enter image description here