从checkboxGroupInput和plotting中选择多个值
大家好,新年快乐 使用下面的代码,我尝试使用它,以便用户可以过滤数据,查看他们希望的一周中的任何天数组合,因此,例如,他们将能够从“周一”和“周四”中选择数据。目前,ggplot仅绘制第一个选中值的数据,因此,例如,如果“周一”和“周四”都选中,则仅显示“周一”的数据。注意:代码中还有一个复选框,可以正常工作从checkboxGroupInput和plotting中选择多个值,r,checkbox,ggplot2,shiny,R,Checkbox,Ggplot2,Shiny,大家好,新年快乐 使用下面的代码,我尝试使用它,以便用户可以过滤数据,查看他们希望的一周中的任何天数组合,因此,例如,他们将能够从“周一”和“周四”中选择数据。目前,ggplot仅绘制第一个选中值的数据,因此,例如,如果“周一”和“周四”都选中,则仅显示“周一”的数据。注意:代码中还有一个复选框,可以正常工作 ui <- fluidPage( titlePanel("Transfers Analysis App"), sidebarLayout( sidebar
ui <- fluidPage(
titlePanel("Transfers Analysis App"),
sidebarLayout(
sidebarPanel(
checkboxGroupInput("Day", "Days of Week", c("All", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"), selected="All"),
checkboxInput("Outage", "Highlight Days when an Outage Occured", FALSE)),
mainPanel(
plotOutput("plot1", height = "600px", width = "100%",
hover = hoverOpts(id = "plot_hover")),
verbatimTextOutput("hover_info")
)))
server <- function(input, output) {
output$plot1 <- renderPlot({
Day <- input$Day
Month <- input$Month
Outage <- input$Outage
if(Day == "Monday")
data<-data[data$day == "Monday"]
if(Day == "Tuesday")
data<-data[data$day == "Tuesday"]
if(Day == "Wednesday")
data<-data[data$day == "Wednesday"]
if(Day == "Thursday")
data<-data[data$day == "Thursday"]
if(Day == "Friday")
data<-data[data$day == "Friday"]
if(Day == "Saturday")
data<-data[data$day == "Saturday"]
#ggplot(data, aes(Date, NUMBER_OF_TRANSFERS)) + geom_point()
#plot(data$Date,data$NUMBER_OF_TRANSFERS, xlab = "Date", ylab = "Transfers")
if(Outage == TRUE)
ggplot(data, aes(Date, NUMBER_OF_TRANSFERS, colour = Incident)) + geom_point() + scale_colour_manual(values=c( "red", "black"))
else
ggplot(data, aes(Date, NUMBER_OF_TRANSFERS)) + geom_point()
#points(data$Date[data$Quantity == "1"],data$NUMBER_OF_TRANSFERS[data$Quantity == "1"], col='red')
})
ui在%
操作符中有一个很棒的%,它可以做你想做的事情:
library(ggplot2)
library(shiny)
ui <- fluidPage(
titlePanel("Transfers Analysis App"),
sidebarLayout(
sidebarPanel(
checkboxGroupInput("Day", "Days of Week", c("All", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"), selected="All"),
checkboxInput("Outage", "Highlight Days when an Outage Occured", FALSE)),
mainPanel(
plotOutput("plot1", height = "600px", width = "100%",
hover = hoverOpts(id = "plot_hover")),
verbatimTextOutput("hover_info")
)))
server <- function(input, output) {
output$plot1 <- renderPlot({
Day <- input$Day
Month <- input$Month
Outage <- input$Outage
if(input$Day != "All"){
data <- data[data$day %in% input$Day,]
}
#ggplot(data, aes(Date, NUMBER_OF_TRANSFERS)) + geom_point()
#plot(data$Date,data$NUMBER_OF_TRANSFERS, xlab = "Date", ylab = "Transfers")
if(Outage == TRUE)
ggplot(data, aes(Date, NUMBER_OF_TRANSFERS, colour = Incident)) + geom_point() + scale_colour_manual(values=c( "red", "black"))
else
ggplot(data, aes(Date, NUMBER_OF_TRANSFERS)) + geom_point()
#points(data$Date[data$Quantity == "1"],data$NUMBER_OF_TRANSFERS[data$Quantity == "1"], col='red')
})
}
shinyApp(ui, server)
在%
操作符中有一个奇妙的%,它可以做您想做的事情:
library(ggplot2)
library(shiny)
ui <- fluidPage(
titlePanel("Transfers Analysis App"),
sidebarLayout(
sidebarPanel(
checkboxGroupInput("Day", "Days of Week", c("All", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"), selected="All"),
checkboxInput("Outage", "Highlight Days when an Outage Occured", FALSE)),
mainPanel(
plotOutput("plot1", height = "600px", width = "100%",
hover = hoverOpts(id = "plot_hover")),
verbatimTextOutput("hover_info")
)))
server <- function(input, output) {
output$plot1 <- renderPlot({
Day <- input$Day
Month <- input$Month
Outage <- input$Outage
if(input$Day != "All"){
data <- data[data$day %in% input$Day,]
}
#ggplot(data, aes(Date, NUMBER_OF_TRANSFERS)) + geom_point()
#plot(data$Date,data$NUMBER_OF_TRANSFERS, xlab = "Date", ylab = "Transfers")
if(Outage == TRUE)
ggplot(data, aes(Date, NUMBER_OF_TRANSFERS, colour = Incident)) + geom_point() + scale_colour_manual(values=c( "red", "black"))
else
ggplot(data, aes(Date, NUMBER_OF_TRANSFERS)) + geom_point()
#points(data$Date[data$Quantity == "1"],data$NUMBER_OF_TRANSFERS[data$Quantity == "1"], col='red')
})
}
shinyApp(ui, server)
太棒了,我知道它们一定比我使用的那些笨重的if语句更好!一个后续问题;我现在如何保留“全部”选项?为了快速修复,我添加了这个选项feature@lewisnix21如果这是你想要的,请接受答案,太棒了,我知道它们一定比我使用的那些笨重的if语句更好!一个后续问题;我现在如何保留“全部”选项?为了快速修复,我添加了这个选项feature@lewisnix21如果这是你想要的,请接受答案