2017-02-09 285 views
1

如何将日期添加到x轴而不是十进制数?将时间序列图的x轴格式化为日期

dates<-seq(from=as.Date("2000/7/1"), by="month", length.out=18) 
y<-rnorm(18,20,3) 
myts<-ts(data=y, 
     start=c(as.numeric(format(min(dates),"%Y")), 
       as.numeric(format(min(dates),"%m"))), 
     frequency=12, 
     deltat=1/12) 
plot(myts,ylab='Y',xlab='Date',type='l') 

感谢&亲切的问候

+0

类似问题[本](http://stackoverflow.com/questions/9178223/dates-appearing-as-decimals-in-r-plot)? –

回答

0

大概格式化最简单的方法x轴与ggplot策划:

library(ggplot2) 
mytsDF <- data.frame(data = myts, date = dates) 
ggplot(mytsDF, aes(date, data)) + geom_line() + 
    scale_x_date(date_labels = "%d-%m-%Y", date_breaks = "3 months") + 
    xlab("") + ylab("y") + ggtitle("Time Series Plot") 

enter image description here

1

也许只是剧情,无须转换为时间序列,抑制绘制时使用xaxt = "n"的x轴标签,然后使用稍后添加x轴标签。

dates_label = as.character(dates) 
plot(x = dates, y, las = 2, xaxt = "n", xlab = "", type = "l") 
axis(1, at = dates, labels = dates_label, las = 2, cex.axis = .85) 

enter image description here