Add vertical lines to quantmod::chart_Series
quantmod, r
Solution
You can't mix functions from the old and new versions of quantmod's charting functions. If you want to use `addLines`, you have to use `chartSeries`. Even if you use `addLines` and `chartSeries`, `d1` should be an xts object, not a datetime object. For example:
library(quantmod)
data(sample_matrix)
s <- as.xts(sample_matrix)
chartSeries(s,TA="addLines(v=s[100])")
If you want to add a vertical line using `chart_Series`, create a logical xts object with `TRUE` values where you want the lines to appear and `FALSE` otherwise. For example:
l <- xts(!as.logical(s[,1]),index(s))
l[100] <- TRUE
chart_Series(s,TA="add_TA(l,on=1)")
Also note that you can put the vertical line "behind" the chart by using `on=-1` in the `add_TA` call:
chart_Series(s,TA="add_TA(l,on=-1,col='grey',border='grey')")
Problem
I want to add vertical lines on several dates on a certain graph. So far I haven't managed to achieve this simple task. This is what I tried: ``` > s <- get(getSymbols('nvmi'))["2012::"] > d1 <- index(s[100]) > d1 [1] "2012-05-24" > chart_Series(s,TA="addLines(v=d1)") Error in get.current.chob() : improperly set or missing graphics device > chart_Series(s) > abline(v=d1) # nothing > add_TA("addLines(v=d1") Error in `[.data.frame`(lenv$xdata, Env$xsubset) : undefined columns selected ``` From what I have already read here, I know that `abline` is not supposed to work with the new `chart_Series` function. It doesn't seem to work anyway. The `addLines` function does not work in any of the forms I tried - plain `addLines`, `plot(addLines(...))`, `chart_Series(..., TA="addLines(...)")` or `add_TA("addLines(...)")`. I need to use the experimental version of quantmod because it solved other problems I had with the old version. `d1` would eventually be a list of dates.