Проблема с quantmod add_TA и chart_Series — линии и текст исчезают после вызова следующего add_TA

Я довольно часто использую новые chart_Series и add_TA. Это работает очень хорошо для меня, и я нахожу это очень полезным.

Я пытаюсь добавить несколько вещей (горизонтальные линии и немного текста) на график. Здесь начинают возникать проблемы. После того, как горизонтальные линии и текст нарисованы правильно, они исчезают, если я вызываю последующие add_TA... См. приведенный ниже пример кода, который воспроизводит проблему:

library(quantmod)

getSymbols("SPY")

dev.new()
chart_Series(SPY)
add_TA(ADX(HLC(SPY))$ADX)
abline(h=15, col="red")
abline(h=35, col="green")
text(10, 7, "Text and horizontal lines disappear after next add_TA is called",
  col="blue", cex=0.8, adj = c(0,0))
# run the code up to this point (including text(...
# see how horizontal lines drawn with abline and text is displayed correctly
# now run the last line by adding additional TA and you will see that lines
# and text disappears
add_TA(DVI(Cl(SPY))$dvi)

Это предполагаемое поведение?

РЕДАКТИРОВАТЬ: Как заставить эту работу (согласно комментарию Джошуа ниже: перерисовывать также линию и текст, когда перерисовывается объект сюжета (чоб))?


person Samo    schedule 26.12.2011    source источник


Ответы (1)


Функции add_*** добавляют информацию к объекту графика (chob) и перерисовывают его. abline и text не добавляют свою информацию к сюжетному объекту; они просто рисуют на устройстве, поэтому их вклад теряется, когда вы перерисовываете объект графика.

person Joshua Ulrich    schedule 27.12.2011
comment
Джошуа, спасибо. Я понимаю. Есть ли обходной путь для этого? Я имею в виду, есть ли функции для добавления линий (горизонтальных и вертикальных), которые добавляются к объекту графика (чоб), чтобы они перерисовывались при перерисовке объекта графика? - person Samo; 27.12.2011