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=

それを行う 1 つの方法は、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 に答える