基本上,我需要一个与 pretty 函数相当的时间函数。因为 pretty 函数使用 1、2、5 和 10 的因子,所以对于时间来说并不太适用。对于时间,我们可能需要小时、半小时等等。
plot(as.POSIXct(x,origin="1960-01-01"),y,type="l",xlab="Time")
刻度太少且间距过大。
zoox<-zoo(y,as.POSIXct(stats$Time,origin="1960-01-01"))
plot(zoox)
提供相同的结果。
谢谢。
编辑:
只是为了澄清(目前的答案没有解决我的问题):我正在寻找像pretty一样用于日期的函数,例如,一个函数,它接受开始日期、结束日期、刻度数,并输出刻度的位置。也就是说,我非常清楚可以绘制小时、分和其他内容,但是pretty自动确定数字的刻度距离,对于日期,生成的函数应该自行决定使用天、小时、分钟、秒、毫秒、微秒、30分钟、500微秒、5秒等时间间隔。这就是pretty对数字的作用方式。
编辑2:
这是我目前用来确定时间轴格式的函数(请注意,这对日期无效):
mydiff <- end-start
if(mydiff>1800) {
axis.POSIXct(1,xrange,format="%H:%M")
} else if(mydiff>30) {
axis.POSIXct(1,xrange,format="%H:%M:%S")
} else if(mydiff>0.5) {
axis.POSIXct(1,xrange,format="%H:%M:%OS3")
} else
axis.POSIXct(1,xrange,format="%H:%M:%OS6")
}
我没有一个增加刻度标记的函数,所以我使用默认数量的刻度标记。
POSIXct
类可以处理小数秒,但是围绕该类的辅助函数通常只在秒级别工作。因此,微秒间隔实际上将以小数秒形式出现,并且必须手动处理。 - Gavin Simpsonaxis.POSIXct(1,xrange,format="%H:%M:%OS6")
将它们显示在图表中。让我再做一个适当函数的编辑。虽然单位是秒,但它是一个双精度值,并且具有相当高的精度。 - Cookielibrary(xts); ?axTicksByTime
或者quantmod:::axTicksByTime2
能够满足你的需求吗? - GSeeseq()
、axis.POSIXt()
等函数中自动处理秒级别的时间。 - Gavin Simpson