【问题标题】:Changing the legend in chartSeries to display values - Quantmod addTA更改 chartSeries 中的图例以显示值 - Quantmod addTA
【发布时间】:2013-09-08 12:18:49
【问题描述】:

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

【问题讨论】:

  • 请添加minimal reproducible example。这使您更容易理解您的问题并提出解决方案。
  • 感谢 Joshua Ulrich 和 Paolo Casciello 改进格式和更正。

标签: r quantmod


【解决方案1】:

没有办法使用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)))

【讨论】:

  • 谢谢约书亚。我已经为您的第一个建议制定了类似的解决方案,该解决方案还将在图例中显示 TA 的输出值。不幸的是,我还没有弄清楚如何让输出文本的颜色与图上线条的相关颜色相匹配。
【解决方案2】:

以下是部分解决方案,它在图例中显示值而不是变量名称以及 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)

【讨论】:

    猜你喜欢
    • 2023-03-28
    • 2018-03-14
    • 1970-01-01
    • 2017-11-27
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 2013-07-21
    • 1970-01-01
    相关资源
    最近更新 更多