2016-12-11 1 views
2

quantmod 차트에서 개별 양초를 어떻게 강조 할 수 있는지에 대해서는 아무 것도 없습니다.퀀텀 차트에서 개별 양초를 강조 표시하는 방법은 무엇입니까?

library(quantmod) 
getSymbols("AAPL", src="yahoo") 
chart_Series(AAPL, subset="2007-01") 
AAPL$show <- ifelse(as.Date(index(AAPL)) == as.Date("2007-01-09"), 1, 0) 
add_TA(AAPL$show, col="red") 

내가 뭘하고 싶은 것은 2007-01-09에 그 줄을 강조하기 위해 어떻게 든 예를 들면 다음과 같습니다 코드입니다. 그것은 다른 양초 색, 주위 사각형 또는 어쩌면 다른 배경색 수 있습니다. 어떤 아이디어로 그것을 할 수 있습니까?

답변

4

강조 표시하려는 포인트와 일치하도록 테마 색상을 변경하는 것이 한 가지 방법입니다. 다음 코드에서는 위쪽 및 아래쪽 색상을 단일 이름에서 데이터 길이와 일치하는 색상 벡터로 변경합니다. 이렇게하려면 AAPL$show 벡터를 사용하고 있습니다. 내가 AAPL$show+1 벡터에 "1"을 추가 한 이유는 0,1 벡터를 1,2로 변환하기 위해서입니다. 그런 다음 c("red","cyan") 중에서 선택하는 데 사용됩니다.

library(quantmod)                
getSymbols("AAPL", src="yahoo")             
AAPL$show <- ifelse(as.Date(index(AAPL)) == as.Date("2007-01-09"), 1, 0)  

myTheme <- chart_theme()              
myTheme$col$dn.col <- c("red","cyan")[AAPL$show+1]        
myTheme$col$up.col <- c("white","cyan")[AAPL$show+1]       
chart_Series(AAPL, subset="2007-01",theme=myTheme)        

add_TA(AAPL$show, col="red")  

enter image description here

+0

Xexe that smart :) 감사합니다! – nesvarbu

2

XTS는 이것에 대한 쉽게 사용할 수있는 도구가 있습니다. 당신이 logical 유형의 데이터가 포함 된 XTS에 전달하면, 당신은 하나의 라이너 (chart_Series를 호출 한 후) 매우 빠르게 수직 라인 마커를 포함 할 수 있습니다

x_vline <- xts(TRUE, as.Date("2007-01-09")) 
add_TA(x_vline, on = -1, col = "lightblue", border='red') 
# Or, if you understand what's going on, replace the above with it all packaged together: 
# add_TA(xts(TRUE, as.Date("2007-01-09")), on = -1, col = "lightblue", border='red') 

enter image description here

사용 on = 1의 앞에 음모 촛불, on =-1 촛불 뒤에 음모. 다른 매개 변수는 설명이 필요합니다.

원하는 경우 여러 막대에 걸쳐 세로 마커를 여러 개 추가하는 것이 좋습니다 (깔끔하게 영역을 그늘지게하기 위해). 예 : : x_vline <- xts(rep(TRUE, 3), as.Date(c("2007-01-09", "2007-01-24", "2007-01-25")))을 사용하면 다음과 같이 나타납니다. enter image description here

+0

좋은 솔루션입니다. 감사합니다. – nesvarbu

관련 문제