2

我有一个带有标题的文本文件数据集

YEAR MONTH DAY value

从 2010 年 1 月 6 日到 2012 年 14 月 7 日,每小时运行一次。我使用以下命令打开并绘制数据:

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 月和 9 月?

我已在此链接上提供数据

https://dl.dropbox.com/u/107215263/example.txt

4

2 回答 2

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")

在此处输入图像描述

于 2013-04-03T08:29:48.227 回答
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)

在此处输入图像描述

于 2013-04-03T08:40:03.833 回答