R:如何在对()图中着色对角线面板?

时间:2012-03-02 15:37:40

标签: r

以下代码为pairsR地块的面板背景着色。如何着色对角线面板(打印变量名称的位置)?正如您所看到的,我尝试过但是变量名称没有正确对齐(无论出于何种原因)。

count <- 0 
mypanel <- function(x, y, ...){

   count <<- count+1 
   bg <- if(count %in% c(1,4,9,12)) "#FDFF65" else "transparent"    ll <- par("usr") 
   rect(ll[1], ll[3], ll[2], ll[4], col=bg)    points(x, y, cex=0.5) 
}

mydiag.panel <- function(x, ...){

   ll <- par("usr") 
   rect(ll[1], ll[3], ll[2], ll[4], col="#FDFF65") }

U <- matrix(runif(4*500), ncol=4) 
pairs(U, panel=mypanel, diag.panel=mydiag.panel)

2 个答案:

答案 0 :(得分:2)

明确设置label.pos = 0.5似乎对我有用:

pairs(U,panel = mypanel, diag.panel=mydiag.panel,label.pos = 0.5)

默认显示为0.5 + has.diag/3,当您指定自己的自定义has.diag功能时,TRUE设置为diag.panel,最终将默认设置更改为0.5 + 1/3。老实说,我不确定为什么会这样。

可能的想法是,如果您为对角线定义自己的绘图功能,则假设您在这些面板中绘制数据,因此将默认标签定位移离面板中心是有意义的...?

答案 1 :(得分:0)

我能够在不使用复杂代码的情况下遮住对角线:

panel.diag <- function(x,...){   
usr <- par("usr")
rect(usr[1],usr[3],usr[2],usr[4],col="pink")
}

pairs(U,upper.panel=panel.cor,lower.panel=panel.pts, diag.panel=panel.diag, label.pos=0.5)