Как обновить сюжет после настройки переключателя и слайдера? - PullRequest
1 голос
/ 18 апреля 2019

Для блестящего приложения, над которым я работаю, я ожидаю, что гистограмма обновится после того, как пользователь настроит ползунок, а также переключатель.

Как я могу связать переключатель и ползунок с графиком?

Я пробовал использовать filter(), и это всегда приводит к тому, что график не появляется, когдапереключатель установите «да» или «нет».Тем не менее, когда переключатель стоит на «Все», график выглядит хорошо.

Ниже server.r, я использовал:

plotdata<- reactive({
    if(input$DayTrade=="All")
        {dataset %>%
         filter(dataset$INVEST<=input$INVEST[2],
               dataset$INVEST>=input$INVEST[1],
               dataset$Age<=input$Age[2],
               dataset$Age>=input$Age[1],dataset$DayTrade==dataset$DayTrade)}
    else if (input$DayTrade=="No")
        {dataset %>%
         filter(dataset$INVEST<=input$INVEST[2],
               dataset$INVEST>=input$INVEST[1],
               dataset$Age<=input$Age[2],
               dataset$Age>=input$Age[1],dataset$DayTrade=="No")}
    else 
        {dataset %>%
         filter(dataset$INVEST<=input$INVEST[2],
                dataset$INVEST>=input$INVEST[1],
                dataset$Age<=input$Age[2],
                dataset$Age>=input$Age[1],dataset$DayTrade=="Yes")}

})
output$histogramplot<-renderPlot({
  datos<-plotdata()
  ggplot(datos, aes(factor(Age),fill=factor(SEX))) + geom_bar(bins=15)  
})

Ниже ui.r,Я использовал:

tabPanel("no-Eaccount",sidebarLayout(
    sidebarPanel(

      sliderInput("INVEST","Invest Range:",min = 0,max = 5000,value = c(100,300),pre="$"),
      sliderInput("Age","Age Range:",min = 0,max = 100,value = c(20,30)),
      radioButtons("DayTrade", "Day Trade:",
                   choices = c("Yes", "No","All"),
                   selected = "All")

    ),

    mainPanel(
      div(plotOutput("histogramplot"),style="width:100%")         
    )
    ))

Как мне решить эту проблему?

1 Ответ

0 голосов
/ 18 апреля 2019

Мы можем использовать eventReactive для прослушивания радио кнопки и слайдера и реагирования при их изменении.вот пример

shinyApp(
  ui = fluidPage(
    column(4,
           radioButtons("x", "Value x", choices = c('5'=5,'7'=7,'8'=8), selected = 5),
           sliderInput("y", "Value y", value = 7,6,10)
    ),
    column(8, tableOutput("table"))
  ),
  server = function(input, output, sessio) {
    # Take an action every time button is pressed;
    # here, we just print a message to the console
    observeEvent(input$x, {
      cat("Showing", input$x, "rows\n")
    })
    # Take a reactive dependency on input$x or input$y, but
    # not on any of the stuff inside the function
    df <- eventReactive(as.numeric(input$x) | input$y, {
      data.frame(x=input$x,y=input$y)
    })
    output$table <- renderTable({
      df()
    })
  }
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...