0

我正在尝试一个函数来绘制quantmod图表和一些矩形。从 cmd 运行时它工作正常,但是当包装在一个函数中时,要么只显示矩形,要么只显示图形,或者有时两者都不显示。示例代码:

f1 <- function() { 
require(quantmod)
s <- get(getSymbols('PRGO'))["2012::"]
chart_Series(s)
u<-par("usr")
d<-data.frame(Buttom=c(100,90),Top=c(110,95))
rect(u[1],d[,'Buttom'],u[2],d[,'Top'],col=rgb(1,0,0,alpha=0.2),border=0)
}
  • 您可能需要运行 plot.new()
  • 如果您从函数返回图表对象并打印它,它可以工作,但我还没有找到返回图表对象和矩形的方法(矩形也是一个列表)
  • 我知道函数在临时环境中工作 - 我还没有找到在全局环境中运行函数的方法。我不知道如何assignchob全球环境中调整。
  • 该功能最终将完成所有绘图 - 我想添加更多线条、标签等。

谢谢。

4

1 回答 1

1

如果你把你的chart_Series()内部包裹起来print,它似乎可以工作?

f1 <- function() { 
  require(quantmod)
  s <- get(getSymbols('PRGO'))["2012::"]
  print(chart_Series(s))
  u<-par("usr")
  d<-data.frame(Buttom=c(100,90),Top=c(110,95))
  rect(u[1],d[,'Buttom'],u[2],d[,'Top'],col=rgb(1,0,0,alpha=0.2),border=0)
}

f1()

在此处输入图像描述

于 2013-02-15T14:06:43.910 回答