设置默认放大图

ark*_*red 6 plot r ggplot2 plotly

我有一个时间序列,正在使用 ggplotly 在 R 中绘制,以自动转换我的 ggplot2 图。我的时间序列可以追溯到 20 年前,但当它被调出时,我只希望它显示最近 4 年的数据。我用过

layout(ggplotly_object, xaxis=list(range=c(min_date,max_date)))
Run Code Online (Sandbox Code Playgroud)

这似乎甚至无法限制日期范围,我使用 lubridate 设置从最大日期减去 4 年。

我还没有找到任何关于将绘图的默认缩放更改为有限数据范围的文档,同时仍然允许用户缩小和平移到过去的数据。任何提示将不胜感激

mal*_*mal 7

日期轴以毫秒为单位,因此您需要先转换为该单位。这是一个例子:

library(plotly)
library(lubridate)

set.seed(42)

# Dummy data
t1 <- ymd_hms("2006-03-14 12:00:00")
t2 <- ymd_hms("2016-03-14 12:00:00") 
df <- data.frame(t = seq(t1, t2, by = 'week'), 
                  y = rexp(522, rate = 0.25))

# Full plot
p <- plot_ly(df, x = t, y = y, type = 'scatter')
p

# Now zoom. Needs to be the number of milliseconds since 01/01/1970. 
# I'm deliberately using lubridate functions.
min_Date <- ymd_hms("2010-03-14 12:00:00")
min_Date_ms <- interval("1970-01-01 00:00:00", min_Date) / dmilliseconds(1)
max_Date <- ymd_hms("2012-03-14 12:00:00")
max_Date_ms <- interval("1970-01-01 00:00:00", max_Date) / dmilliseconds(1)

p %>% layout(xaxis = list(range = c(min_Date_ms, max_Date_ms)))
Run Code Online (Sandbox Code Playgroud)

可能有一种更优雅的方法可以做到这一点,但它应该有效。


d-r*_*roy 0

因此对于范围,您应该将其设置为向量长度2,即:c(min value,max value)