单击shiny-app中的复选框时更改图表

时间:2018-03-20 15:03:07

标签: r ggplot2 shiny shinydashboard

## libraries used ##
library(shiny)
library(shinydashboard)
library(ggplot2)
library(dplyr)

## dataset ##
dates <- seq.Date(as.Date("2017-01-01"), length = 1000, by = "days")
mydata <- as.data.frame(dates) %>%
  mutate(satisfaction = runif(1000, 1, 100))

## ui ##
ui <- dashboardPage(

  dashboardHeader(disable = TRUE),

  dashboardSidebar(
    sidebarMenu(
      dateRangeInput("dateRange", "Please choose date", "2018-05-01", "2018-06-30"),
      checkboxInput("comparePreviousPeriod", "Compare to previous period", FALSE)
    )
  ),

  dashboardBody(
    fluidRow(
      box(width = 12, plotOutput("satisfactionGraph"))
    )
  )
)

server <- function(input, output) {
  changing_data <- reactive({
    req(input$dateRange)
    mydata[mydata$dates >= input$dateRange[1] & mydata$dates <= input$dateRange[2],]
  })

  output$satisfactionGraph <- renderPlot(
    ggplot(changing_data(), aes(dates, satisfaction, group = 1)) + 
      geom_line() + 
      theme_minimal() +
      xlab("Day of the year") + 
      ylab("Satisfaction level") + 
      ggtitle("User satisfaction") + 
      theme(axis.text.x = element_text(angle = 90, hjust = 1))
  )
}


shinyApp(ui, server)

我有一个闪亮的信息中心,其中包含checkboxdateRange。单击复选框后,我希望ggplot显示包含上一期间数据的附加行,例如,如果我的日期是“2018-05-01”&amp; “2018-06-30”我希望新系列能够显示“2018-03-01”和“2018-03-01”的数据。 “2018年4月31日”。

1 个答案:

答案 0 :(得分:2)

问题是,当您更改日期输入时,您的被动值将自动更改。这是一个简单的方法,您可以将2个句点与2个日期输入重叠。

{
  "Effect": "Allow",
  "Action": "iot:Connect",
  "Resource":"*"
}