【问题标题】:Format x-axis of time series plot as date将时间序列图的 x 轴格式化为日期
【发布时间】:2017-02-09 09:14:29
【问题描述】:

如何将日期添加到 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')

感谢和亲切的问候

【问题讨论】:

  • 与this类似的问题?

标签: r plot


【解决方案1】:

也许只是绘制而不转换为时间序列,绘制时使用xaxt = "n" 抑制x 轴标签,然后稍后使用axis 添加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)

【讨论】:

    【解决方案2】:

    可能最简单的格式化 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")
    

    【讨论】:

      猜你喜欢
      • 2020-10-06
      • 1970-01-01
      • 1970-01-01
      • 2020-12-07
      • 1970-01-01
      • 1970-01-01
      • 2015-08-13
      • 2016-12-13
      • 2019-06-28
      相关资源
      最近更新 更多