如何使用ggplot取消shinyr中的renderPlot()函数

时间:2016-11-08 17:33:52

标签: r ggplot2 shiny shiny-reactivity

下面是基本闪亮应用程序的功能代码,允许用户选择一列,然后绘制所选列的ggplot :: histogram():

library(shiny)

# Define UI for application that draws a histogram
ui <- fluidPage(
  titlePanel("ggplot"),
  sidebarLayout(
    sidebarPanel(
      uiOutput("column_select")
    ),
    mainPanel(plotOutput("plot"))
  )

)

# Define server logic required to draw a histogram
server <- function(input, output){
  dat <- reactive({iris})
  output$column_select <- renderUI({selectInput("col", label = "column", choices = as.list(names(iris)), selected = "Sepal.Length")})
  output$plot <- renderPlot({ggplot(dat(), aes_string(x = input$col)) +
      geom_histogram()})


  p <- ggplot(dat(), aes_string(x = input$col)) +
    geom_histogram()

  renderPlot
}

# Run the application 
shinyApp(ui = ui, server = server)

但是,我不确定为什么我无法从renderPlot()中删除ggplot()函数并仍然得到相同的结果。我试过了:

p <- reactive({ggplot(dat(), aes_string(x = input$col)) +
    geom_histogram()})

  outputPlot <- renderPlot({p})

但这导致没有绘制情节。

我认为对此有一个简单的解决方法,但到目前为止它逃脱了我。

0 个答案:

没有答案