在时间序列图上画一条线

时间:2017-12-02 09:53:43

标签: r plot time-series line

我有下一个时间序列对象,我使用plot绘制它:

ts <- ts(c(1:4,2:5,3:6,4:7,5:8,6:9,7:10), frequency = 4)
plot(ts)

Plot of the ts

现在,我想在使用abline的第一个和最后一个观察之间画一条线,但是,虽然R没有显示任何错误,但似乎它在使用它时不起作用时间序列图。用于尝试绘制线的代码是:

abline(a = 1, b = (ts[length(ts)]- ts[1]) / (length(ts)-1))

有没有人遇到同样的问题并设法解决它?

enter image description here

2 个答案:

答案 0 :(得分:1)

ts <- ts(c(1:4,2:5,3:6,4:7,5:8,6:9,7:10), frequency = 4)
plot(ts, xlim=c(1,8), type="o")

x1 <- 1; y1 <- ts[1]
x2<- 7.75; y2 <- ts[length(ts)]

abline(a = y1-x1*(y1-y2)/(x1-x2), b = (y1-y2)/(x1-x2) )
grid()

enter image description here

答案 1 :(得分:0)

我不确定我完全理解你想要达到的目标。但以下可能会有所帮助。

您可以使用lines

使用以下简单代码
# your code
ts <- ts(c(1:4,2:5,3:6,4:7,5:8,6:9,7:10), frequency = 4)
plot(ts)

# drawing a blue line from (1, 1) to (8, 10)
lines(x = c(1, 8), y = c(1,10), col="blue")

产生以下简单的情节

enter image description here