2013-02-15 47 views
0

我正在嘗試一個函數來繪製quantmod圖表和一些矩形頂部。它在從cmd運行時工作正常,但是在函數內包裝時,只顯示矩形,或者只顯示圖形,或者有時也不顯示。 示例代碼:從一個函數中繪製多個對象R

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
  • 該功能最終會做所有的繪圖 - 我想添加更多的線條,標籤等。

謝謝。

回答

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() 

enter image description here

+0

感謝的人。使它與標籤和標題一起工作。是因爲chart_Series返回一個圖表對象,當從cmd運行時,env只是隱式地打印它?或者我出錯了(我嘗試過分配組合......) – haki 2013-02-15 14:25:14

+0

是的,應該是這樣。例如,對於'ggplot2'對象也是如此。 – juba 2013-02-15 14:26:42