如何将颜色键添加到pair()图中?

时间:2012-03-24 14:03:09

标签: r plot graphics panel

目标:我在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,因此可以直接看出哪些测试会导致拒绝。

0 个答案:

没有答案