【问题标题】:Reactivity while using ggvis/shiny使用 ggvis/shiny 时的反应性
【发布时间】:2016-06-01 20:26:10
【问题描述】:

我是 Shiny/ggvis 的新手,我想创建一个散点图,允许用户从 X 和 Y 下拉列表中进行选择。我尝试过这个壮举可能多次无济于事,非常感谢一些帮助。请看下面的代码。

library(shiny)
library(ggvis)
library(dplyr)

# Define the user interface

  shinyUI(pageWithSidebar(
    # Add a title to this page

    headerPanel(
      h1("Test the Header Panel!")),


    sidebarPanel(
      uiOutput("ggvis_ui"),
      sliderInput(inputId = "size",label = "Area",10, 1000, value = c(10)),
      selectInput(inputId = "yAxis",label = "Y variable", c("wt","drat")),      
      selectInput(inputId = "xAxis",label = " X variable", c("cyl", "am","gear"))),



    mainPanel(
      h1("Please review the chart below showing nothing!"),

      ggvisOutput("ggvis")

      )


  )

  )

服务器.r

# Create server.R

    shinyServer(function(input, output, session) {

      # A reactive expression wrapper for input$size
      input_size <- reactive(input$size)
      input_xAxis <- reactive(input$xAxis)
      input_yAxis <- reactive(input$yAxis)

      # A reactive expression wrapper for input$size


      mtcars %>% 
        ggvis(x =input_xAxis, y = input_yAxis, size := input_size) %>%
        layer_points() %>%
        bind_shiny("ggvis", "ggvis_ui")


    })

【问题讨论】:

    标签: r shiny ggvis


    【解决方案1】:

    您缺少的两件事是使绘图具有反应性,并在变量名称为字符串时使用prop 设置属性。

    对服务器代码的以下更改会返回一个反应图形:

    plot = reactive({
        mtcars %>%
        ggvis(prop("x", as.name(input_xAxis())), 
             prop("y", as.name(input_yAxis())), 
             size := input_size) %>%
        layer_points()
        })
    
    plot %>%
        bind_shiny("ggvis", "ggvis_ui")
    

    【讨论】:

    • 非常感谢您的帮助。我对闪亮还很陌生,您的回复对我有很大帮助。谢谢!
    • @Get_it_Going 很高兴为您提供帮助!如果这解决了问题,您可以单击答案旁边的复选标记。
    猜你喜欢
    • 2015-05-06
    • 2014-04-14
    • 2016-04-25
    • 2015-06-23
    • 1970-01-01
    • 1970-01-01
    • 2016-10-11
    • 2020-04-25
    • 1970-01-01
    相关资源
    最近更新 更多