as.POSIXct.numeric(value) 中的错误:'origin' 必须在 ggplot 中提供

Sar*_*h.d 5 datetime r ggplot2

我目前正在分析 GSR 值的数据集。我首先必须将我的 unix 值转换为可读数据,然后根据时间创建 GSR 值的图。

这就是数据集的样子: 在此处输入图片说明

这是我的代码和图表在此处输入图片说明

veranda <- ggplot(gsr_veranda, aes(as.POSIXct(Date, origin = "1970-01-01"), Values)) +
               geom_line() +
               scale_x_datetime(date_labels = "%H:%M:%s") +
Run Code Online (Sandbox Code Playgroud)

我想放大图形并查看我尝试此代码的特定时间:

veranda <- ggplot(gsr_veranda, aes(as.POSIXct(Date, origin = "1970-01-01"), Values)) +
               geom_line() +
               scale_x_datetime(date_labels = "%H:%M:%s") +
               scale_x_continuous(limits = c("11:05:02", "11:05:03"))
Run Code Online (Sandbox Code Playgroud)

但是,我仍然收到此错误: as.POSIXct.numeric(value) 中的错误:必须提供“原点”

但是,当我将 unix 转换为可读数据并再次在我的 ggplot 代码中时,已经提供了原点。

我怎样才能解决这个问题?

小智 3

要解决此问题,您应该在scale_x_datetime() 函数中传递限制。此外,它们必须采用 POSIXct 格式。以下代码执行此操作:

lim <- as.POSIXct(c("2018-05-07 11:05:02", "2018-05-07 11:05:03"),  origin = "1970-01-01")

veranda <- ggplot(gsr_veranda, aes(as.POSIXct(Date, origin = "1970-01-01"), Values)) +
    geom_line() +
    scale_x_datetime(date_labels = "%H:%M:%s",limits=lim) 
Run Code Online (Sandbox Code Playgroud)