gpt4 book ai didi

r - 在 Shiny 中同步 Dygraph 和 DateRangeInput

转载 作者:行者123 更新时间:2023-12-04 02:20:29 32 4
gpt4 key购买 nike

我想在 Shiny App 中同步一个 dygraph 和一个 DateRangeInput。
下面的代码工作正常:我可以同时使用缩放选项和日期范围,但由于“乒乓”效果,我无法使用 dyRangeSelector:

library(xts)
library(shiny)
library(dygraphs)
library(lubridate)


data("co2")
data <- as.vector(coredata(as.xts(co2)))
serie <- xts(x = data,order.by = seq(from=today(),by=1,length.out = length(data)))
ui <- fluidPage(
titlePanel("Dygraph & date range input"),
sidebarLayout(
sidebarPanel(
dateRangeInput('plage', label = "Selectionnez la période :",
start = start(serie), end = end(serie),
# min = start(serie), max = end(serie),
separator = " - ",
format = "dd mm yyyy", #"yyyy-mm-dd",
language = 'fr', weekstart = 1
)
),
mainPanel(
dygraphOutput("dessin")
)
)
)

server <- function(input, output,session) {

observeEvent(input$dessin_date_window,{
start <- as.Date(ymd_hms(input$dessin_date_window[[1]]))
stop <- as.Date(ymd_hms(input$dessin_date_window[[2]]))
updateDateRangeInput(session = session,
inputId = "plage",
start = start,end = stop
)
})

output$dessin <- renderDygraph({
dygraph(serie) %>%
dyRangeSelector(
dateWindow = input$plage+1) # +1 parce que voila...
})
}

# Run the application
shinyApp(ui = ui, server = server)

知道如何控制吗?
(dygraph没有更新功能...... :()

最佳答案

只需为当前系列添加一个响应式(Reactive),你应该会很好

  current_series <- reactive({
range <- paste(input$plage[1], input$plage[2], sep = "/")
serie[range]
})

output$dessin <- renderDygraph({
dygraph(current_series()) %>%
dyRangeSelector(
dateWindow = input$plage+1) # +1 parce que voila...
})

关于r - 在 Shiny 中同步 Dygraph 和 DateRangeInput,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49215000/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com