2016-08-24 86 views
1

我有一個actionBotton從數據集mtcars的前5列中隨機選取一列並繪製它。R Shiny eventReactive actionBotton interaction

現在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) 

回答

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