将POSIXct传递给xlim

时间:2015-04-11 04:33:04

标签: r

有些灵魂请解释为什么xlim不会在下面的代码片段中确认POSIXct对象:

y <- rnorm(3)
x <- c("2012-01-01", "2013-01-01", "2014-01-01")
x <- as.POSIXct(x) 
plot(y, xlim=range(x))

这导致一个空图,其xlims不是日期,而是数字等价物,并出现以下错误:

Error in plot.window(...) : invalid 'xlim' value

我搜索了旧帖子,以下据称有些版本的作品

plot(y, xlim=seq(as.POSIXct("2012-01-01"), as.POSIXct("2014-01-01"), by="month")

但是当我尝试时,我收到了同样的错误。我决定以任何方式在日​​期,最好是几个月内命名我的xtick标签。

上面的代码段显然是无足轻重的,以证明我的问题,但我已经验证我的实际x变量是一个POSIXct对象,其日期格式为YYYY-MM-DD,而我的y是一个长度等于x的向量。

1 个答案:

答案 0 :(得分:2)

您可以尝试

 plot(x,y, xaxt='n')
 axis.POSIXct(side=1, x, format='%Y-%m-%d')

其他选项是

 library(xts)
 x1 <- xts(y, order.by=x)
 plot(x1, xlim=range(index(x1)), type='p')