以下代码为pairs
中R
地块的面板背景着色。如何着色对角线面板(打印变量名称的位置)?正如您所看到的,我尝试过但是变量名称没有正确对齐(无论出于何种原因)。
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)
答案 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)