2016-08-24 1 views
1

Ich habe eine actionBotton, um zufällig eine Spalte aus den ersten 5 Spalten aus dem Datensatz mtcars auszuwählen und zu plotten.R Shiny eventReactive actionBotton Interaktion

Jetzt könnte die actionBotton ihre Arbeit machen, aber das Diagramm wird nicht auf den ersten Platz geplottet, wenn die App gestartet wird.

Gibt es eine Möglichkeit, es geplottet zu haben, wenn die Shiny App gestartet wird.

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) 

Antwort

3

Sie können die Bedingung hinzufügen, wenn die Schaltfläche nicht angeklickt wurde. Beachten Sie, dass Taste funktioniert als Zähler so, wenn es nicht der Wert wird angeklickt worden ist 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