У меня есть данные, которые вы можете сгенерировать с помощью:
set.seed(3)
dat.0<-as.data.frame(expand.grid(c("MATH","CHEM","BIOL"),c("Spring","Summer","Fall"),c(2016,2017,2018),0:17))
names(dat.0)<-c("SUBJ","SEM","YEAR","WEEK")
dat.0$MEET<-floor(runif(486,0,150))
Я пытаюсь создать блестящее приложение, которое будет отображать линейный сюжет серии "MEET" с "WEEK" на оси x, окрашенной полем "SUBJ".
снаружи блестящий сюжет выглядит отлично:
dat.0%>%
ggplot(aes(x = WEEK,y = MEET,colour = SUBJ))+
geom_point()+
geom_path()+
facet_grid(YEAR~SEM)
но когда я использую блестящий для создания приложения, оно выдает ошибку, если я пытаюсь нанести на график более одной серии. Более того, если вы строите каждую серию по отдельности внутри приложения, вы понимаете, что независимо от того, какой «SUBJ» вы выберете, он печатает один и тот же график:
choices = levels(as.factor(dat.0$SUBJ))
# Define UI for application that draws a histogram
ui <- fluidPage(
# Application title
titlePanel("STEM Tutoring App"),
# Sidebar with a slider input for number of bins
sidebarLayout(
sidebarPanel(
selectInput("SUBJ",
"Course Subject:",
choices = choices,
multiple = T,
selectize = T)
),
# Show a plot of the generated distribution
mainPanel(
plotOutput("linePlot")
)
)
)
server <- function(input, output) {
output$linePlot <- renderPlot({
req(input$SUBJ)
dat.0%>%
ggplot(aes(x = WEEK,y = MEET,colour = input$SUBJ))+
geom_point()+
geom_path()+
facet_grid(YEAR~SEM)})}
# Run the application
shinyApp(ui = ui, server = server)
Я знаю, что это почти там, я просто не знаю, как сделать так, чтобы он выглядел хорошо и функционировал так, как вы ожидаете.