格式化时间序列格式

时间:2013-11-09 04:51:39

标签: r format time-series lattice

我经常处理时间序列数据,包括年,月,日,分和秒的时间尺度。在绘图时,沿着strptime命令的行轻松改变时间序列轴的显示方式会很方便。

library(lattice)
t_ini = "2013-01-01"
ts = as.POSIXct(t_ini)+seq(0,60*60*24,60*60)
y = runif(length(ts))
# default plot with time series axis in M D h:m 
xyplot(y~ts) 
# this attempt at using format to display only hours on the x-axis does not work:
xyplot(y~ts, scales=list(x=list(labels=format("%H")))) 

scale参数中似乎有一个格式命令,但我似乎无法掌握它。有任何想法吗?谢谢!
布赖恩

1 个答案:

答案 0 :(得分:5)

xyplot(y~ts, scales=list(x=list(at= as.numeric(ts), 
                                labels=format(ts, "%H"))))

要每六个小时制作一次刻度,只需使用seq.POSIXt

xyplot(y~ts, scales=list(
     x=list(at= seq(as.POSIXct(t_ini), by="6 hour", length=5), 
     labels=format(seq(as.POSIXct(t_ini), by="6 hour", length=5),
                   "%H hrs"))
      )