2013-09-27 18 views
1

我使用lower.panel和upper.panel選項來繪製我的數據的pairs()圖,還沒有弄清楚如果可以配置子面板的軸。例如,如果我使用data(iris),pairs(iris[1:4],xlim=c(0,10))給出了一個圖,其中子圖的所有x軸都從0縮放到10.R,pairs():在指定下/上面板時配置子面板的軸

如果我嘗試pairs(iris[1:4],xlim=c(0,10),lower.panel=panel.lm),它仍能正常工作。只要我從pairs()的幫助文件嘗試面板功能panel.cor,就會收到錯誤 unused argument (xlim = c(0, 10))

我比較了panel.lmpanel.cor的代碼,但我沒有進一步瞭解需要調整設置的位置。除了設置xlimylim之外,指定是否應該在各個上下面板中標記軸,這是非常好的,但我不知道這是否要求太高。

供參考,在這裏是從R幫助文件中的兩個函數:

panel.lm<- 
function (x, y, col = par("col"), bg = NA, pch = par("pch"), 
cex = 1, col.lm = "red", lwd=par("lwd"), ...) 
{ 
points(x, y, pch = pch, col = col, bg = bg, cex = cex) 
ok <- is.finite(x) & is.finite(y) 
if (any(ok)) 
    abline(lm(y~x,subset=ok), col = col.lm, ...) 
} 
panel.cor <- function(x, y, digits=2, prefix="r = ", cex.cor) 
{ 
usr <- par("usr"); on.exit(par(usr)) 
par(usr = c(0, 1, 0, 1)) 
r <- cor(x, y) 
txt <- format(c(r, 0.123456789), digits=digits)[1] 
txt <- paste(prefix, txt, sep="") 
if(missing(cex.cor)) cex <- 0.8/strwidth(txt) 
text(0.5, 0.5, txt, cex = cex * abs(r)) 
} 

回答

0

你剛纔忘了,包括在panel.cor功能...xlimpanel.lm一起使用的唯一原因是該參數通過...傳遞到後續函數。如果沒有省略號,panel.cor會看到未知參數xlim並引發錯誤。只需將其更改爲:

panel.cor <- function(x, y, digits=2, prefix="r = ", cex.cor,...)