将形状放置在timeseries绘图下

将形状放置在timeseries绘图下,r,time-series,R,Time Series,我有一个相对简单的绘图,有两个形状和标签: plot.ts(timeseries, xlab = "Week - Beginning in 2012", ylab = "Interest - Percentage of Max", lwd = 2, ylim = c(0, 120), xlim = c(0,250)) text(c(210, 115), c(105, 55), labels = c("Label 1", "Label 2")) rect(200, 0, 220, 100, c

我有一个相对简单的绘图,有两个形状和标签:

plot.ts(timeseries, xlab = "Week - Beginning in 2012", ylab = "Interest - 
Percentage of Max", 
lwd = 2, ylim = c(0, 120), xlim = c(0,250))
text(c(210, 115), c(105, 55), labels = c("Label 1", "Label 2"))
rect(200, 0, 220, 100, col = "green", density = 20)
rect(100, 0, 130, 50, col = "green", density = 20)

我已经找到了一种方法来获取时间序列绘图线下的框,但是我在abline和panel两个方面都没有成功。首先。

您只需查看x轴和y轴,然后为文本标签和框的边缘选择良好的对应坐标。一开始你会弄错,但之后你可以一直玩到完美为止

确保您很好地了解
text
rect
中的哪个参数对应于哪个坐标。有关图例,请参见
?text
?rect

z <- ts(matrix(rt(200 * 8, df = 3), 200, 1),
        start = c(1961, 1), frequency = 12)

plot.ts(z, xlab = "Week - Beginning in 2012", ylab = "Interest - 
Percentage of Max")

text(c(1965, 1970), c(-5, -5), labels = c("Label 1", "Label 2"))
rect(1963, -6, 1967, -4, col = "green", density = 20)
rect(1968, -6, 1972, -4, col = "green", density = 20)

更新

根据你刚才留下的评论说

我需要的是那条线在绿盒子前面,而不是 在它后面

在添加如下矩形后,您需要使用
重新绘制直线:

plot.ts(z, xlab = "Week - Beginning in 2012", ylab = "Interest - 
Percentage of Max")

i <- .25*(0:20)
rect(1963+i, -6+i, 1967+i, -4+i, col = rainbow(11, start = 0.7, end = 0.1))
lines(z)

text(c(1970, 1975), c(-5, -5), labels = c("Boom", "How about that?"), col="red")
plot.ts(z,xlab=“一周-从2012年开始”,ylab=“利息- 最大值的百分比“)
欢迎来到Stack Overflow。请使您的示例可复制,尤其是在R标签中。所以你能不能用一些内置的数据或者其他可复制的策略?您的意思是附加数据集?您可以使用内置数据集(有关选项,请参见
data()
)或在代码中创建数据集。例如,
z我绘制了这个答案,标签和方框仍然在数据的顶部-或者您是否演示了一个可复制的示例?在实际数据中,我使用方框将作为突出显示绘图区域的一种方式-因此我需要在方框顶部显示绘图线,我不清楚你要的是什么,这里没有。如果您提供示例数据,然后使用绘图程序显示所需内容,可能会更容易。您友好地制作的上图显示了框中的绿线(包含“标签2”)位于时间序列绘图数据的前面-我需要的是该线位于绿框的前面,而不是后面@太感谢你了。我真的很感谢你抽出时间来忍受我的玩笑。
plot.ts(z, xlab = "Week - Beginning in 2012", ylab = "Interest - 
Percentage of Max")

i <- .25*(0:20)
rect(1963+i, -6+i, 1967+i, -4+i, col = rainbow(11, start = 0.7, end = 0.1))
lines(z)

text(c(1970, 1975), c(-5, -5), labels = c("Boom", "How about that?"), col="red")