3

是否可以更改 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').

4

2 回答 2

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)))
于 2013-09-10T11:35:18.493 回答
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)
于 2013-09-10T11:36:11.540 回答