[英]Date conversion issue for time series using plot.ts()
我有一個 dataframe 日期為yyyy-mm-dd
格式和股價,但在使用plot.ts()
繪制時,我無法在 x 軸上看到日期。 我嘗試了下面提到的一些替代方案,但它們不起作用。
我使用轉換日期
data$Date<-as.Date(data$Date, "%Y-%m-%d")
或data$Date<-ymd(data$Date)
使用潤滑 package然后做了
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)
但它又沒有用。 我總是得到下圖:
謝謝你的幫助。
ts 設置有點笨拙,而且它的情節並不總是最友好的。 您可以按如下方式設置數據。 請注意,您需要以一種相當痛苦的方式為下面的時間序列 object 指定“開始”,然后(因為它只接受固定的時間間隔)您失去了原始系列中的天間隔:
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 package 在這里更好? 它可以處理不規則的時間索引。
library(xts)
myxts <- xts(data$Share_price, data$Date)
plot(myxts)
請參閱 plot.xts() 文檔,了解用於美化您的圖表的各種花里胡哨。
通常 ts class 用於每月、每季度或每年的數據,但不用於每日數據。
假設DF
具有按照末尾注釋中所示的可重現形式的日期和數字列,則轉換為 zoo class。 然后我們可以很容易地使用經典圖形 plot,ggplot2 或點陣圖形。
library(zoo)
z <- read.zoo(DF)
plot(z, main = "classic")
library(ggplot2)
autoplot(z) +
library(lattice)
xyplot(z)
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))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.