目标:我在pairs
中有一个经过调整的R
图,我想为其添加一个颜色键。 pairs
图中的面板背景显示了从数字矩阵确定的某些颜色。我想在pairs
图的右边有一个颜色键,它显示这些颜色和一些标明数字的标签。
我找到了一些方法,可以为image()
图表添加颜色键(例如,image.plot
包中的fields
; colorbar
包中的matlab
; color.legend
包中的plotrix
。因此,原则上,我想为我的调整pairs
情节做类似的事情。但是,我已经遇到了麻烦,为要绘制的颜色键保留了一些空间(可以[甚至应该?]这可以用grid
完成吗?)。
以下是具有彩色背景的pairs
地块的最小示例。我还尝试在color.legend
中调整plotrix
的示例,但这或多或少是无意义的。有关如何以优雅/灵活的方式做到这一点的任何想法?
count <- 0
color <- c("yellow", "orange", "red", "lightgreen", "darkgreen", "cyan", "lightblue",
"darkblue", "brown", "gray", "transparent", "transparent")
mypanel <- function(x, y, ...){
count <<- count+1
bg <- color[count]
ll <- par("usr")
rect(ll[1], ll[3], ll[2], ll[4], col=bg)
points(x, y, cex=0.5)
}
U <- matrix(runif(4*500), ncol=4)
## require(plotrix)
## par(mar=c(7,4,4,14)) # (bottom, left, top, right)
pairs(U, panel=mypanel, gap=0)
## color.legend(xl=10.2, yb=2, xr=11, yt=5,
## legend=c("bright","normal","dark"), rect.col=color, align="rb",
## gradient="y")
信息:上面选择的颜色是根据数字(相同长度的矢量)确定的。数字都在0和1之间,0(1)对应于最暗(最亮)的颜色。那些数字应该确定在颜色键上打印的刻度和数字(我不需要实际的文本标签 - 我只是尝试过,因为color.legend
的例子使用了它)。因此,上面colors
的数字向量可以是c(0.95, 0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2, 0.1, 1, 1)
(数字越大,列越亮)。更确切地说:这些值是由每对的拟合优度测试确定的p值,深色应该指出小的p值。实际上,颜色不是均匀间隔的,我只使用高于显着性水平的某些颜色(例如)0.05,并且大多数颜色低于0.05,因此可以直接看出哪些测试会导致拒绝。