R/quantmod:如何指定布林带颜色?

R/quantmod:如何指定布林带颜色?,r,quantmod,R,Quantmod,这可能是更普遍的是如何改变主题的颜色?或者TA颜色不受主题控制 这使得布林带具有很好的云效果: chartSeries(bars, theme="white") addBBands() (见(底部附近)) 在下一个示例中,云效果为深灰色,因此几乎不可见 chartSeries(bars, theme="black") addBBands() 我该如何把它变成,比如说,一个漂亮的鲜红色,上面和下面的线条是亮紫色?(是的,我知道,配色方案为-1) 我相信我将能够指定一个8个十六进制数字的颜色来指

这可能是更普遍的是如何改变主题的颜色?或者TA颜色不受主题控制

这使得布林带具有很好的云效果:

chartSeries(bars, theme="white")
addBBands()
(见(底部附近))

在下一个示例中,云效果为深灰色,因此几乎不可见

chartSeries(bars, theme="black")
addBBands()
我该如何把它变成,比如说,一个漂亮的鲜红色,上面和下面的线条是亮紫色?(是的,我知道,配色方案为-1)


我相信我将能够指定一个8个十六进制数字的颜色来指定半透明度。但我能做些更具异国情调的事吗?例如,如果使用梯度,并将其置于中心位置#ff0000,在上下两条线处逐渐降至#330000,那将是相当酷的。quantmod图表中是否有渐变支持?

查看似乎表明渐变是不可能的,但可以指定向上/向下颜色,以及相应的边框颜色。只需根据示例定义您自己的主题。你可以从预先确定的主题开始,修改某些单独的参数。

充实本杰明的答案和我自己的经验,下面是一个例子:

#bars is an XTS object, OHLC data
library(quantmod)

chartSeries(bars)
addBBands(n=20,sd=2)
addBBands(n=50,sd=1)
上面绘制了两个默认颜色方案的布林带。以下内容将其更改为半透明红色(即,如果两者都存在,则红色会更强烈):

根据我对来源的研究,这本应能改变线条颜色:

t$BBands$col=c('red','blue','green')
但事实并非如此。但是,您可以使用以下工具将顶部/底部颜色更改为相同的颜色:

t$BBands$col='blue'
reChart(theme=t)
下面是如何使用较新的chart_series()函数执行相同的操作,请注意,您可以单独设置线条颜色(注意,据我所知,没有reChart函数):

据我所知,这是不可能的,使用不同的配色方案,为每一个两个布林带。即使这样改变配色方案也失败了,因为在第二个命令后,它会用新的颜色重新绘制这两种颜色

obj=chart_Series(bars)
add_BBands(n=50,sd=1)
obj$Env$theme$bbands$col$fill="#00ff0033"
add_BBands(n=20,sd=2)

感谢本杰明;这为我指明了正确的方向(我随后的发现在另一个答案中)。
t=chart_theme()
t$bbands$col$fill="#ff000033"
t$bbands$col$upper='red'
t$bbands$col$lower='green'
t$bbands$col$ma='blue'
chart_Series(bars,theme=t)
add_BBands(n=50,sd=1)
add_BBands(n=20,sd=2)
obj=chart_Series(bars)
add_BBands(n=50,sd=1)
obj$Env$theme$bbands$col$fill="#00ff0033"
add_BBands(n=20,sd=2)