编辑 - 在尝试之前 observeEvent 解:
observeEvent
根据你想要绘制的确切内容,可能会出现这种情况 facet_grid(. ~year) 并不是 facet_grid(. ~input$year) 。
facet_grid(. ~year)
facet_grid(. ~input$year)
如果 facet_grid(. ~input$year) 不是你想要的,那么...... 你可以尝试一下 observeEvent 从闪亮的包装:
observeEvent(input$year, { output$scatterplot <- renderPlot({ input$year ggplot(pigs, aes(x = sow_count, y = species, col = species)) + geom_point() + facet_grid(. ~year) }) })
基本上每当对象 input$year 更改,您渲染一个新的情节。
input$year
您的示例将如下所示:
library(shiny) library(ggplot2) pigs <- read.csv("pigs_data.csv") # Define UI for application ui <- fluidPage( # Application title titlePanel("Pig Breeding"), sidebarLayout( sidebarPanel( #Allows user to choose a year which changes the distribution of plot points selectInput(inputId = "year", label = "Choose a year:", choices = c(2016, 2017, 2018), selectize = FALSE ) ), # Show a plot of the generated distribution mainPanel( plotOutput("scatterplot") ) ) ) # Define server logic server <- function(input, output) { observeEvent(input$year, { output$scatterplot <- renderPlot({ input$year ggplot(pigs, aes(x = sow_count, y = species, col = species)) + geom_point() + facet_grid(. ~year) }) }) } # Run the application shinyApp(ui = ui, server = server)
我希望这适合你:)
我认为你需要更新你的表 的 猪 强> 如果它包含变量 的 年 强> 像这样:
server <- function(input, output) { output$scatterplot <- renderPlot({ input$year ggplot(pigs %>% filter(year %in% input$year), aes(x = sow_count, y = species, col = species)) + geom_point() + facet_grid(. ~year) }) }
希望这有帮助。