【问题标题】:How to highlight individual candles in a quantmod chart?如何在 quantmod 图表中突出显示单个蜡烛?
【发布时间】:2016-12-11 16:57:01
【问题描述】:

我找不到任何关于如何在 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 年 1 月 9 日以某种方式突出显示该栏。它可能是不同的蜡烛颜色、围绕它的矩形或不同的背景颜色。有什么想法吗?

【问题讨论】:

    标签: r charts xts quantmod


    【解决方案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")      
    

    【讨论】:

    • 聪明的 Xexe :) 谢谢!
    【解决方案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')
    

    使用on = 1 在蜡烛前面绘制,on =-1 在蜡烛后面绘制。其他参数应该是不言自明的。

    请注意,您还可以添加多个垂直标记,如果您愿意,可以跨越多个条形(整齐地为区域着色)。例如:使用x_vline &lt;- xts(rep(TRUE, 3), as.Date(c("2007-01-09", "2007-01-24", "2007-01-25"))) 给出:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-10
      • 1970-01-01
      • 2021-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多