R,pairs():指定下/上面板时配置子面板的轴

时间:2013-09-27 10:54:55

标签: r plot

我使用lower.panel和upper.panel选项绘制我的数据的pairs()图,并且没有弄清楚如何以及是否可以配置子面板的轴。例如,如果我使用data(iris)pairs(iris[1:4],xlim=c(0,10))给出了一个图,其中子图的所有x轴都从0到10缩放。

如果我尝试pairs(iris[1:4],xlim=c(0,10),lower.panel=panel.lm),它仍然可以正常工作。我在panel.cor的帮助文件中尝试面板功能pairs()后,我收到错误消息:

  

未使用的参数(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))
}

1 个答案:

答案 0 :(得分:0)

您忘了在...函数中添加panel.corxlimpanel.lm一起使用的唯一原因是该参数通过...传递给后续函数。如果没有省略号,panel.cor会看到一个未知参数xlim并抛出错误。只需将其更改为:

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