gpt4 book ai didi

r - 向 chartSeries 图形添加一条垂直线

转载 作者:行者123 更新时间:2023-12-05 01:10:29 24 4
gpt4 key购买 nike

我希望这不是多余的,因为我已经在谷歌上进行了广泛的搜索,但仍然没有找到答案。我正在绘制日内数据并希望在特定时间点放置一条垂直线。似乎我必须使用函数 addTA 但它总是在我的图表下方绘制一些奇怪的空白区域。这是一些示例代码和数据。谢谢你的帮助。

数据:

date,value
29-DEC-2010:00:02:04.000,99.75
29-DEC-2010:00:03:44.000,99.7578125
29-DEC-2010:00:05:04.000,99.7578125
29-DEC-2010:00:07:53.000,99.7421875
29-DEC-2010:00:07:57.000,99.71875
29-DEC-2010:00:09:20.000,99.7421875
29-DEC-2010:00:11:04.000,99.75
29-DEC-2010:00:12:56.000,99.7421875
29-DEC-2010:00:13:05.000,99.7421875

代码:
#set up data
data = read.csv("foo.csv")
values = data[,2]
time = c(strptime(data[,1],format="%d-%b-%Y:%H:%M:%S",tz="GMT"))
dataxts = xts(values, order.by=time,tzone="GMT")

# chart data
chartSeries(dataxts)
# add vertical line - this is where I have no clue what's going on.
addTA(xts(TRUE,as.POSIXlt("2010-12-29 00:11:00",tz="GMT"),on=1))

最终发生的事情是我在我想要的地方得到了一条垂直线,2010-12-29 00:11:00,但它位于图表下方的新部分,而不是覆盖在它上面。有任何想法吗?

最佳答案

你路过 on作为 xts 的参数,但您应该将其传递给 addTA .

我认为你的意思是这样做:

addTA(xts(TRUE,as.POSIXlt("2010-12-29 00:11:00",tz="GMT")),on=1)

也就是说,对于您的示例数据,它仍然对我不起作用。但是,如果您所拥有的内容适用于您的真实数据,但它将该行放入新面板中,那么这应该可以工作,而不是打开新面板。

我有一个 addVLine function在我的 qmao package这本质上是一样的。

编辑

除了括号的拼写错误之外,xts 对象还需要一个列名才能用于 addTA工作(我认为......至少在这种情况下)。此外,您必须给出图表上存在的 x 值(即 11:04,而不是 11:00)
colnames(dataxts) <- "x"
chartSeries(dataxts)
addTA(xts(TRUE,as.POSIXlt("2010-12-29 00:11:04",tz="GMT")),on=1, col='blue')
# or
# library(qmao)
# addVLine(index(dataxts[7]))

编辑 2

也许更好的方法是使用 addLines功能
addLines(v=7)

或者,如果你知道时间,但不知道行号,你可以这样做
addLines(v=which(index(dataxts) == as.POSIXlt("2010-12-29 00:11:04", tz="GMT")))

这使

enter image description here

关于r - 向 chartSeries 图形添加一条垂直线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14903848/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com