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

时间:2016-09-23 15:24:00

标签: r plotly

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

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方式。

有什么想法吗?

1 个答案:

答案 0 :(得分:7)

想出来,它在文档中,我不知道我是如何错过它的。日期需要从epoch转换为毫秒 - 下面的方法有点粗糙,可以尝试编写一个简单的函数来使代码更容易阅读:

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