是否可以选择使用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方式。
有什么想法吗?
答案 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