我有一个带标题的文本文件数据集
YEAR MONTH DAY value
从2010年6月6日至2012年7月14日每小时运行一次。我使用以下命令打开并绘制数据:
data=read.table('example.txt',header=T)
time = strptime(paste(data$DAY,data$MONTH,data$YEAR,sep="-"), format="%d-%m-%Y")
plot(time,data$value)
但是,绘制数据时,x轴仅显示2011年和2012年。。如何保留2011年和2012年的标签,还可以添加一些特定月份,例如如果我想要3月,6月和九月?
我已在此链接上提供数据
答案 0 :(得分:5)
您需要使用函数axis.POSIXct
来格式化和处理您的日期标签:
plot(time,data$value,xaxt="n") #Skip the x-axis here
axis.POSIXct(1, at=pretty(time), format="%B %Y")
要查看所有可能的格式,请参阅?strptime
您当然可以使用参数at
来将刻度线放在任何位置,例如:
axis.POSIXct(1, at=seq(time[1],time[length(time)],"3 months"),
format="%B %Y")
答案 1 :(得分:0)
虽然这不能直接回答问题,但我建议您使用xts
包进行任何时间序列分析。它使时间序列分析非常方便
require(xts)
DF <- read.table("https://dl.dropbox.com/u/107215263/example.txt", header = TRUE)
head(DF)
## YEAR MONTH DAY value
## 1 2010 6 1 95.3244
## 2 2010 6 2 95.3817
## 3 2010 6 3 100.1968
## 4 2010 6 4 103.8667
## 5 2010 6 5 104.5969
## 6 2010 6 6 107.2666
#Get Index for xts object which we will create in next step
DFINDEX <- ISOdate(DF$YEAR, DF$MONTH, DF$DAY)
#Create xts timeseries
DF.XTS <- .xts(x = DF$value, index = DFINDEX, tzone = "GMT")
head(DF.XTS)
## [,1]
## 2010-06-01 12:00:00 95.3244
## 2010-06-02 12:00:00 95.3817
## 2010-06-03 12:00:00 100.1968
## 2010-06-04 12:00:00 103.8667
## 2010-06-05 12:00:00 104.5969
## 2010-06-06 12:00:00 107.2666
#plot xts
plot(DF.XTS)