gpt4 book ai didi

r - 用户选择/多输入的多个独立图

转载 作者:行者123 更新时间:2023-12-04 14:59:46 25 4
gpt4 key购买 nike

我想根据用户输入可视化绘图。我有一个下拉菜单,如果用户从给定的选项中选择一个或多个变量,代码会根据用户输入自动可视化每个变量的单独图表。

代码:这就是我尝试做的方式。如果还有其他方法,请提出。

library(shiny)
library(shinyjs)

shinyApp(
ui = fluidPage(
useShinyjs(), #Necessary to activate shinyjs
selectInput("select", "Select plot:", 1:4, multiple = TRUE),
plotOutput("p1"),
plotOutput("p2"),
plotOutput("p3"),
plotOutput("p4")
),
server = function(input, output) {
output$p1 <- renderPlot({ plot(iris) })
output$p2 <- renderPlot({ plot(mtcars) })
output$p3 <- renderPlot({ plot(0) })
output$p4 <- renderPlot({ plot(1) })

observeEvent(input$select, {
req(input$select)
shinyjs::toggle("p1", condition = input$select == 1)
shinyjs::toggle("p2", condition = input$select == 2)
shinyjs::toggle("p3", condition = input$select == 3)
shinyjs::toggle("p4", condition = input$select == 4)
})

}
)

此代码的问题在于,当我从下拉菜单中选择任何一个输入时,其他变量的所有其他图也会显示出来。另外,当所有变量都被选中并且我尝试从下拉菜单中取消选择变量时,它们不会隐藏。

最佳答案

由于选择允许多选,你应该使用%in%而不是==
您还应该使用 observe 而不是 observeEvent 来对 NULL 输入使用react。

library(shiny)
library(shinyjs)

shinyApp(
ui = fluidPage(
useShinyjs(), #Necessary to activate shinyjs
selectizeInput("select", "Select plot:", 1:4, multiple = TRUE),
plotOutput("p1"),
plotOutput("p2"),
plotOutput("p3"),
plotOutput("p4")
),
server = function(input, output) {
output$p1 <- renderPlot({ plot(iris) })
output$p2 <- renderPlot({ plot(mtcars) })
output$p3 <- renderPlot({ plot(0) })
output$p4 <- renderPlot({ plot(1) })

observe({
shinyjs::toggle("p1", condition = isTRUE(1 %in% input$select))
shinyjs::toggle("p2", condition = isTRUE(2 %in% input$select))
shinyjs::toggle("p3", condition = isTRUE(3 %in% input$select))
shinyjs::toggle("p4", condition = isTRUE(4 %in% input$select))
})

}
)

关于r - 用户选择/多输入的多个独立图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67201896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com