我是绘制时间序列的新手。我下载了时间序列数据并计算了一个线性方程式,我想在时间序列图中添加它。我想在图中显示年份,所以我使用index(stk)作为x轴输入。
代码:
WebRTC
我知道这是使用索引(stk)的情节,我怎么能保持情节的x轴在日期,我可以使用plot.xts或其他像ggplot2来做同样的事情吗?请指教,非常感谢。
答案 0 :(得分:1)
在基础r图或ggplot2中做你想要的情节并不是很难,这就是你的意思:
plot(index(stk), log(Cl(stk)), type="l", lwd=3, las=1)
lines(x = index(stk.lm1$fitted.values), y = stk.lm1$fitted.values,col = "blue")
对于基础r图我添加了一行,其中包含我使用$
签名和主题日期提取的线性回归的拟合值。考虑到lm
尊重数据结构,因此结果为xts
library(ggplot2)
ggplot(stk, aes(x = index(stk), y = as.numeric(log(Cl(stk)))))+geom_line(lwd=1)+
geom_line(aes(x = index(stk.lm1$fitted.values), y = stk.lm1$fitted.values),col = "blue")+
labs(x = "Date", y = "Log Price")
对于ggplot2非常相似。首先,您必须使用ggplot
来定义数据和美学(aes
),然后添加一行geom_line
,对于额外的行,我使用了此命令,使用基本r函数以相同的方式在新aes
中定义新行。
答案 1 :(得分:1)
这是一个ggplot解决方案。你不应该自己计算线性回归系数:
# convert stk to data frame & specify your x-axis variable explicitly
stk.df <- as.data.frame(stk)
stk.df$Date <- as.Date(rownames(stk.df))
# plot
ggplot(stk.df,
aes(x = Date, y = log(AAPL.Close))) +
geom_line() +
geom_smooth(method = "lm", se = FALSE) +
labs(x = "Year", y = "log(AAPL's closing value)") +
theme_bw()
geom_smooth
行负责回归。如果要在该行周围包含置信区间,请设置se = TRUE
。