plotly:x 轴(日期)上的范围滑块,具有自定义开始/结束日期

plotly: range slider on x-axis (date) with custom start / end date

是否可以使用 plotly 包中的 rangeslider 选项,以便您添加滑块并指定默认范围。现在,以下代码添加了滑块,但默认情况下选择了整个日期范围。

library(plotly)

df <- data.frame(Date = seq(as.Date("2016-01-01"), as.Date("2016-08-31"), by="days"),
                 Value = sample(100:200, size = 244, replace = T))

p <- plot_ly(data = df, x = Date, y = Value, type = "line") %>%
  layout(xaxis = list(rangeslider = list(type = "date")  ))
p

我希望能够指定初始范围 - 例如,仅显示上个月并允许用户根据需要扩展范围。文档似乎表明没有这样的选项,我宁愿不采用自定义 javascript 方式。

有什么想法吗?

想出来了,文档里有,不知道怎么漏掉了。日期需要转换为自纪元以来的毫秒数 - 下面的方法有点粗糙,可以尝试编写一个简单的函数来使代码更易于阅读:

p <- plot_ly(data = df, x = Date, y = Value, type = "line") %>%
  layout(xaxis = list(range = c( as.numeric(max(df$Date)-30) *86400000,
                                 as.numeric(max(df$Date)) * 86400000   ),
  rangeslider = list(type = "date")  ))
p