如何在 quantmod 图表中突出显示单个蜡烛?
How to highlight individual candles in a quantmod chart?
我找不到任何关于如何在 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 上的那个栏。它可以是不同的蜡烛颜色、围绕它的矩形或者可能是不同的背景颜色。有什么想法吗?
一种方法是更改主题颜色以匹配您要突出显示的点。在下面的代码中,我将上下颜色从单个名称更改为与数据长度相匹配的颜色矢量。为此,我使用了您的 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")
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')
使用on = 1
在蜡烛前绘制,on =-1
在蜡烛后绘制。其他参数应该是不言自明的。
请注意,您也添加了多个垂直标记,如果您愿意,可以跨越多个条(以整齐地遮蔽区域)。例如:使用 x_vline <- xts(rep(TRUE, 3), as.Date(c("2007-01-09", "2007-01-24", "2007-01-25")))
给出:
我找不到任何关于如何在 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 上的那个栏。它可以是不同的蜡烛颜色、围绕它的矩形或者可能是不同的背景颜色。有什么想法吗?
一种方法是更改主题颜色以匹配您要突出显示的点。在下面的代码中,我将上下颜色从单个名称更改为与数据长度相匹配的颜色矢量。为此,我使用了您的 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")
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')
使用on = 1
在蜡烛前绘制,on =-1
在蜡烛后绘制。其他参数应该是不言自明的。
请注意,您也添加了多个垂直标记,如果您愿意,可以跨越多个条(以整齐地遮蔽区域)。例如:使用 x_vline <- xts(rep(TRUE, 3), as.Date(c("2007-01-09", "2007-01-24", "2007-01-25")))
给出: