繁体   English   中英

将列值定义为反应式 shiny plot 的输入

[英]Define column values as input for reactive shiny plot

我想启动一个 shiny 应用程序进行练习,用户可以从下拉列表中选择钻石数据集(来自 ggplot2)的“切割”列中的值。

我的用户界面如下所示:

library(shiny)

# Define UI for application that draws a histogram
shinyUI(fluidPage(

  # Application title
  titlePanel("Reactive Boxplot"),

  # Show a boxplot of the selected cut
  mainPanel(
    selectInput("column", label = h3("Column to plot"),
                choices = c("", diamonds$cut),
                selected = 1,
                width='55%',
                multiple = FALSE),
    plotOutput("diamondshist")
  )
)
)

我不知道如何将输入变量定义为钻石数据集“切割”列中的五个不同值。 对此有任何意见吗?

我的服务器文件如下所示。 我假设我还需要调整 plot 的输入数据。

library(shiny)
library(ggplot2)

# Define server logic required to draw a histogram
shinyServer(function(input, output) {

  compute_plot <- reactive({
    if (input$column != ""){
      ggplot(diamonds[, input$column])+
        labs(title = "From diamonds dataset")+
        geom_boxplot(aes(x = cut, y = price))+
        scale_y_reverse()
    }
  })


  output$diamondshist <- renderPlot({
    compute_plot();
  })

})

我认为这就是你所追求的:

  • 通过diamonds$cut的级别作为输入选择
  • diamonds数据集子集到选定的切割
library(shiny)
library(ggplot2)

# Define UI for application that draws a histogram
ui=shinyUI(fluidPage(

    # Application title
    titlePanel("Reactive Boxplot"),

    # Show a boxplot of the selected cut
    mainPanel(
        selectInput("column", label = h3("Column to plot"),
                    choices = c("", levels(diamonds$cut)),
                    selected = NULL,
                    width='55%',
                    multiple = FALSE),
        plotOutput("diamondshist")
    )
)
)




# Define server logic required to draw a histogram
server=shinyServer(function(input, output) {

    compute_plot <- reactive({
        if (input$column != ""){
            ggplot(subset(diamonds, cut==input$column))+
                labs(title = "From diamonds dataset")+
                geom_boxplot(aes(x = cut, y = price))+
                scale_y_reverse()
        }
    })


    output$diamondshist <- renderPlot({
        compute_plot();
    })

})

shinyApp(ui = ui, server = server)

暂无
暂无

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

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