【问题标题】:Date conversion issue for time series using plot.ts()使用 plot.ts() 的时间序列的日期转换问题
【发布时间】:2020-02-03 21:17:12
【问题描述】:

我有一个日期为yyyy-mm-dd 格式和股价的数据框,但在使用plot.ts() 绘制它时,我在 x 轴上看不到日期。我尝试了下面提到的一些替代方法,但它们都不起作用。

我使用转换日期

  1. data$Date<-as.Date(data$Date, "%Y-%m-%d") 或者
  2. data$Date<-ymd(data$Date) 使用 lubridate 包

然后做了

bby <- ts(data=data$Share_price, frequency=2, start=c(data[1,"Date"]))
plot.ts(bby))

没有成功。

我也试过了

bby <- ts(data=data$Share_price, frequency=2,
     start=as.Date("2017-10-05"), end=as.Date("2019-10-04"))`

然后plot.ts(bby)

但它再次不起作用。我总是得到下图:

感谢您的帮助。

【问题讨论】:

  • 以后请以剪切和可粘贴的形式提供您的数据,而不是图像。

标签: r date time-series


【解决方案1】:

ts 设置有点笨拙,而且它的情节并不总是最友好的。您可以按如下方式设置数据。请注意,您需要以一种相当痛苦的方式为下面的时间序列对象指定“开始”,然后(因为它只接受固定的时间间隔)您会丢失原始序列中的日期间隔:

z <- seq.Date(as.Date('2017-10-05'), by = 1, length.out = 8)
data <- data.frame(Date = z[-(3:4)],
                   Share_price = c(1708.84, 1718.40, 1724.14, 1762.39, 1766.21, 1813.07))
myts <- ts(data$Share_price,
           start = c(2017, as.numeric(format(data$Date[1], "%j"))),
           frequency = 365)
plot(myts)

x 轴现在具有 2017 年的小数偏移量。

也许 xts 包在这里更好?它可以处理不规则的时间索引。

library(xts)
myxts <- xts(data$Share_price, data$Date)
plot(myxts)

请参阅 plot.xts() 文档,了解用于美化您的图表的各种花里胡哨。

【讨论】:

  • 非常感谢!是的 plot.xts() 更容易!
  • 如果这符合您的要求,请点赞并接受答案。
【解决方案2】:

通常 ts 类用于每月、每季度或每年的数据,但不用于每日数据。

假设DF 具有日期和数字列,按照最后注释中显示的可复制形式,转换为 zoo 类。然后我们可以轻松地使用经典图形、ggplot2 或点阵图形进行绘图。

library(zoo)
z <- read.zoo(DF)

plot(z, main = "classic")

library(ggplot2)
autoplot(z) + 

library(lattice)
xyplot(z)

使用 cowplot 将所有三个一起绘制

library(gridGraphics)
library(cowplot)

plot(z)
p1 <- recordPlot()

library(ggplot2)
p2 <- autoplot(z)

library(lattice)
p3 <- xyplot(z)

plot_grid(p1, p2, p3, labels = c("classic", "ggplot2", "lattice"), nrow = 1)

给予:

注意

DF <- structure(list(Date = structure(c(17444L, 17445L, 17448L, 17449L, 
17450L, 17451L), class = "Date"), Share_price = c(1708.84, 1718.4, 
1724.14, 1762.39, 1766.21, 1813.07)), class = "data.frame", row.names = c(NA, 
-6L))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-30
    • 2019-05-31
    • 1970-01-01
    • 1970-01-01
    • 2018-12-07
    • 2021-04-30
    相关资源
    最近更新 更多