Plotly R:无法使自定义 xaxis 日期范围起作用

Plotly R: can't make custom xaxis date ranges to work

这应该很简单(我认为),但由于某种原因我无法让它工作。我有这样的数据:

df
           x y
1 2016-08-12 1
2 2016-08-13 2
3 2016-08-14 3
4 2016-08-15 4
5 2016-08-16 5

str(df)
'data.frame':   5 obs. of  2 variables:
 $ x: Date, format: "2016-08-12" "2016-08-13" ...
 $ y: int  1 2 3 4 5

我按如下方式使用 plotly,但它不会将 x 轴范围调整为我指定的自定义值。相反,使用数据范围:

library(plotly)
plot_ly(df, x = x, y = y) %>% layout(xaxis = list(range = c(as.Date('2016-08-01'), as.Date('2016-08-31'))))

另一方面,如果我有这样的数字数据:

df
  x y
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5

并像这样指定自定义范围,效果很好:

plot_ly(df, x = x, y = y) %>% layout(xaxis = list(range = c(-5, 10)))

我在使数据范围起作用时缺少什么?

引自https://plot.ly/r/reference/#layout-xaxis-range(粗体由我添加):

range (list) Sets the range of this axis. If the axis type is "log", then you must take the log of your desired range (e.g. to set the range from 1 to 100, set the range from 0 to 2). If the axis type is "date", then you must convert the date to unix time in milliseconds (the number of milliseconds since January 1st, 1970). For example, to set the date range from January 1st 1970 to November 4th, 2013, set the range from 0 to 1380844800000.0 Each named list has one or more of the keys listed below.

因此,您可以将日期转换为以毫秒为单位的 unix 时间:

plot_ly(df, x = x, y = y) %>%
    layout(xaxis = list(
        range = 
            c(as.numeric(as.POSIXct("2016-08-01", format="%Y-%m-%d"))*1000,
              as.numeric(as.POSIXct("2016-08-31", format="%Y-%m-%d"))*1000),
        type = "date"))