繁体   English   中英

有光泽的+ ggvis:使用ggvis“tilde”或“〜”反应

[英]shiny + ggvis: reactive using ggvis “tilde” or “~”

我想要的是设置ggvis的有效方式fill物业server.R根据在InputSelect箱ui.R 由于fill属性语法需要“ tilde ”或“ ”,因此我无法提供解决方案。

下面的ui.Rserver.R只是我的一个解决方案尝试: 我的下面的switch语句是错误的,因为我得到一个“ Error in switch(select, mpg = { : EXPR must be a length 1 vector ”。不要犹豫提出一些完全不同的东西。

在此先感谢您的支持!

ui.R

shinyUI(fluidPage(
  sidebarLayout(
    sidebarPanel(
      selectInput("select", label = h3("Select box"), 
                  choices = list("mpg" = "mpg", "hp" = "hp", "cyl" = "cyl"), 
                  selected = "mpg")
    ),
    mainPanel(
      uiOutput("ggvis_ui"),
      ggvisOutput("ggvis")
    )
  )
))

server.R

data(mtcars)

shinyServer(
  function(input, output) {
    select <- reactive({as.character(input$select)})
      data <- switch(select, 
                     mpg = {mtcars %>% 
                       ggvis(~mpg, ~wt, 
                             fill = ~mpg) %>% 
                       layer_points() %>%
                       bind_shiny("ggvis", "ggvis_ui")},
                     hp = {mtcars %>% 
                       ggvis(~mpg, ~wt, 
                             fill = ~hp) %>% 
                       layer_points() %>%
                       bind_shiny("ggvis", "ggvis_ui")},
                     cyl = {mtcars %>% 
                       ggvis(~mpg, ~wt, 
                             fill = ~cyl) %>% 
                       layer_points() %>%
                       bind_shiny("ggvis", "ggvis_ui")}
      )    
  }
)

您可以尝试使用select()运行select表达式,并将您的开关包装在observer以反应性地绘制数据:

server.R将是:

shinyServer(
  function(input, output) {
    select <- reactive({as.character(input$select)})
    observe({
    data <- switch(select(), 
                   mpg = {mtcars %>% 
                            ggvis(~mpg, ~wt, 
                                  fill = ~mpg) %>% 
                            layer_points() %>%
                            bind_shiny("ggvis", "ggvis_ui")},
                   hp = {mtcars %>% 
                           ggvis(~mpg, ~wt, 
                                 fill = ~hp) %>% 
                           layer_points() %>%
                           bind_shiny("ggvis", "ggvis_ui")},
                   cyl = {mtcars %>% 
                            ggvis(~mpg, ~wt, 
                                  fill = ~cyl) %>% 
                            layer_points() %>%
                            bind_shiny("ggvis", "ggvis_ui")}
    ) 
    data
    })
  }
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM