R - 绘制时间序列的正常X轴

时间:2016-12-08 11:24:23

标签: r plot time-series

我有小时格式的时间序列数据。

$scope.question = $firebaseObject(fireBaseData.refQuestions().child('2'));

要绘制这个时间序列,我的工作如下:

Time    traffic
6/7/2005 7:00   56718587433
6/7/2005 8:00   76456162968
6/7/2005 9:00   82534038485
6/7/2005 10:00  88796995092

 ...

7/28/2005 10:00 51528036132
7/28/2005 11:00 69610584123
7/28/2005 12:00 76364975533
7/28/2005 13:00 81281257078

这是我得到的情节: time series plot

我的问题是如何在我的图中获得正常的x轴值? (即使用data<-read.csv("my_file.csv") data<-ts(data[,2],frequency = 24*365, start=c(2005,6,7,7)) plot(data, xlab="Date", ylab = "Value") 6-2005或甚至采用7-2005 7-6-2005等日常格式。)

2 个答案:

答案 0 :(得分:0)

您可以直接在原始数据帧上尝试使用xts而不是使用ts(下图显示了它在随机生成的数据上的外观):

data <- data.frame(Time=seq(strptime('6/7/2005 7:00', '%m/%d/%Y %H:%M'), strptime('6/7/2006 7:00', '%m/%d/%Y %H:%M'), 3600), traffic=rnorm(8761, 56718587433, 100000))

head(data)
        Time     traffic
1 2005-06-07 07:00:00 56718605033
2 2005-06-07 08:00:00 56718675864
3 2005-06-07 09:00:00 56718662521
4 2005-06-07 10:00:00 56718525435
5 2005-06-07 11:00:00 56718604095
6 2005-06-07 12:00:00 56718411539

class(data$Time)
[1] "POSIXct" "POSIXt" 

library(xts)
data <- xts(data$traffic, as.POSIXct(data$Time, format="%m%d%Y %H:%M"))
plot(data, major.format = "%m-%d-%Y", xlab="Date", ylab = "Value")

enter image description here

答案 1 :(得分:0)

也许日期格式是数字?检查typeof(时间)。也许你必须改变它:

 as.date(x, format = "%m-%d-%Y")