1

我有一个包含 5 列价格数据的 xts。我想将每一列数据绘制为折线图,并为每一列添加一条唯一的水平线。我的代码是:

pColours <- sequential_hcl(5, palette = "Viridis")

target = c(1,3,5,7,9)

for (i in 1:5) {

  mydata <- xts[ ,i]

  plot(mydata, col = pColours[i], main = "blah blah", ylim = (0,8), 
       major.ticks = "auto", minor.ticks = NULL))

  abline(h = target[i], col = "red")
}

我在 int_abline 中遇到错误。尚未调用 plot.new。我知道绘图是分层构建的,并且已经尝试了很多方法来获得每个图表上的 abline。我只是无法让 abline 在折线图上绘制。帮助!

4

1 回答 1

0

abline 应正确打印到每个绘图:

  • ylim应该是一个向量c(0,8)...缺少c
  • 删除major.ticksminor.ticks
  • 代码中正确的括号对。

这个简单的例子(基于你的)可以正常工作:

target = c(1,3,5,7)
for (i in 1:4) {
    mydata <- target
    plot(mydata, main = "blah blah", ylim = c(0,8))
    abline(h = target[i], col = "red")
}

虽然这是一个有点奇怪的例子,但它可以工作并使用 abline 创建许多图。

第一个例子

如果你想在一个图中有更多的线,你可以移动循环:

target = c(1,3,5,7)
mydata <- target
plot(mydata, main = "blah blah", ylim = c(0,8))
for (i in 1:4) {
    abline(h = target[i], col = "red")
}

第二个例子

于 2020-06-10T22:32:33.263 回答