2016-12-11 8 views
2

クオンツモードチャートで個々のろうそくをどのように強調することができたかについては何も見つかりませんでした。以下はコード例です:クオンツモードチャートで個々のキャンドルをハイライト表示する方法は?

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

これを行う1つの方法は、ハイライトしたいポイントに合わせてテーマの色を変更することです。次のコードでは、上下の色を単一の名前から、データの長さに一致する色のベクトルに変更しています。これを行うには、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 :)ありがとう! – nesvarbu

2

XTSこのため、容易に入手可能なツールがあります。あなたがlogicalタイプのデータを含むXTSに渡す場合は、(chart_Seriesを呼び出した後)1つのライナーで非常に迅速に縦線マーカーを含めることができます。

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

関連する問題