是否可以更改Quantmod中显示的图表上的图例,以便显示值而不是变量名称?例如:
library("quantmod")
getSymbols("YHOO")
temp1 <- 6
temp2 <- "SMA"
barChart(YHOO)
addTA(ADX(YHOO, n=temp1, maType=temp2))
图中显示的图例为ADX(YHOO, n=temp1, maType=temp2)
。我希望它显示特定的值,即ADX(YHOO, n=6, maType='SMA')
。
答案 0 :(得分:2)
使用addTA
无法自动执行此操作,因为它需要知道需要评估的TA
调用的哪些参数。但您可以通过自己设置legend=
参数手动完成。
一种方法是使用paste
(或paste0
)。
barChart(YHOO)
Legend <- paste0('ADX(YHOO, n=',temp1,', maType=',temp2,')')
addTA(ADX(YHOO, n=temp1, maType=temp2), legend=Legend)
或者你可以创建并操纵调用来获得你想要的东西。
barChart(YHOO)
callTA <- call("ADX",quote(YHOO),n=temp1,maType=temp2)
eval(call("addTA", callTA, legend=deparse(callTA)))
答案 1 :(得分:0)
以下是部分解决方案,它显示图例中的值而不是变量名称以及TA的相关输出值。但是,与addTA的默认设置不同,每个输出值的文本与addTA图上的行颜色不匹配。不幸的是,我还没有弄清楚如何使输出值的文本与addTA图上相关行的颜色相匹配。有什么建议吗?
library("quantmod")
getSymbols("YHOO")
barChart(YHOO, subset="last 4 months")
col <- c("red", "blue", "green", "orange")
temp1 <- 8
temp2 <- "SMA"
temp <- ADX(HLC(YHOO), n=temp1, maType=temp2)
legend <- rep(NA, NCOL(temp)+1)
legend[1] <- paste("ADX(HLC(YHOO)", "n=", temp1, "maType=", temp2)
for(x in 2:(NCOL(temp)+1)){
legend[x] <- (paste(colnames(temp[,(x-1)]),": ", round(last(temp[,(x-1)]),3), sep=""))
}
addTA(temp, legend = legend, col=col)