xts 中 abline 的垂直文本

vertical text for abline in xts

我正在寻找一种在 xts 中的 abline 上放置(可能是垂直的)文本的方法,但似乎我无法定义放置文本的位置(但是,我可以定义 abline):

require(xts)
data(sample_matrix)
sample.xts <- as.xts(sample_matrix, descr='my new xts object')


for (i in 1:dim(sample.xts)[2]){
  cat(paste("\n",i))
  plot((tail(sample.xts[,i],10)), main=paste("column" ,i))
  print(lines(x = tail(sample.xts[,i],10), col = "darkgreen", lty=2, on=1))
  abline(v=.index(last(sample.xts[-dim(sample.xts)[1],])), col="red",lty=3)
  # text( here possibly some vertical text)
}

已编辑:代码现在可以重现了。 我需要一种方法将文本放置到带有时间索引的 abline,而不是数字(或找出正确的数字) 有什么建议么? 提前致谢!

由于您的代码不可重现,我使用的是内置数据集。对于 90 度旋转,您可以使用以下内容:

attach(mtcars)
plot(mpg ~ hp)
abline(v = 170)
text(x = 180, y = 25, label = "Your text here!", srt = 90)

CRAN 上的 xts 版本当前为 0.9-7。使用该版本,您需要使用 text()srt 参数来添加和旋转文本。如果您在定义位置时遇到问题,可以使用带有 locator() 功能的鼠标以交互方式查找坐标。

# Using xts 0.9-7
require(xts)
data(sample_matrix)
x <- tail(as.xts(sample_matrix, dateFormat = "Date"), 10)[,1]

plot(x)
lines(x, col = "darkgreen", lty=2)
v <- last(.index(x)[-nrow(x)])
abline(v = v, col = "red", lty = 3)
text(v, max(x), "label", pos = 2, srt = 90)