Проблемы между входами и выходом графика
Привет,
Я тестирую базовое приложение ShinyApp, где могу создать график коммерческих услуг с разбивкой по географии и типу услуг.
Идея заключается в том, что я хочу, чтобы пользователь использовал три входа в раскрывающемся меню, каждый из которых зависит от предыдущего выбора, для подмножества данных, которые затем выводятся в ggplot.
Однако у меня проблемы с подключением входов к выходу графика (см. Ниже). Входные данные работают нормально и реагируют, когда они выбраны, но я не могу понять, как связать это с графиком, у меня возникает ощущение, что я не использую правильный источник данных (но не знаю, как это обеспечить). Кроме того, я не знаком с тем, как мне добавить третий фильтр (для «службы»), поскольку я не знаю, как связать свой источник данных с самого начала.
Извините, это, вероятно, просто, но некоторая помощь будет очень полезна.
UI
#Data
Test <- dataframe(
Geography1 = c("Region","Local Authority","County"...),
Geography2 = c("North West","Aldershot","Cheshire"...),
Service = c("Shop","Cafe","Library"...),
Overall_rating = c("Awesome","Good","Fantatstic"...),
Locations = c(4000, 1300, 1700...)
)
#SHINY APP
ui <- fluidPage(
titlePanel("Tool"),
sidebarLayout(
sidebarPanel(
uiOutput("geography1"),
uiOutput("geography2"),
uiOutput("service")),
mainPanel(
plotOutput("plot", height = "400px"))
)
)
Сервер
server <- function(input, output) {
output$geography1 = renderUI({
selectInput(inputId = "geog1",
label = "Geography 1:",
choices = as.character(unique(Test$Geography1)),
selected = "Region")
})
output$geography2 = renderUI({
datasub <- Test[Test$Geography1 == input$geog1, "Name"]
selectInput(inputId = "geog2",
label = "Geography2:",
choices = unique(datasub),
selected = unique(datasub)[1])
})
output$service = renderUI({
datasub2 <- unique(datasub)
selectInput(inputId = "service",
label = "Service type:",
choices = unique(...),
selected = unique(...)[1])
})
output$plot = renderPlot({
ggplot(datasub2(),aes(x = Overall_rating, y = Locations, fill= Overall_rating))+
geom_bar(stat = "identity")
})
}
shinyApp(ui, server)
![enter image description here](https://i.stack.imgur.com/gQGzK.png)