我有小时格式的时间序列数据。
$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
我的问题是如何在我的图中获得正常的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
等日常格式。)
答案 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")
答案 1 :(得分:0)
也许日期格式是数字?检查typeof(时间)。也许你必须改变它:
as.date(x, format = "%m-%d-%Y")