我正在尝试绘制一个巨大的相关系数矩阵,目前,我的绘图如下所示:
请注意,某些单元格缺少相关系数(暂时忽略绘图缺乏对称性,除非您碰巧知道为什么会这样)。我相信这些值实际上并没有丢失,只是太小而无法出现,因为它们是按相关系数的值来衡量的。
查看 chart.Correlation() 的文档,我能够找到一个函数,该函数可以对 chart.Correlation() 的大部分内容进行建模:
panel.cor <- function(x, y, digits=2, prefix="", cex.cor)
{
usr <- par("usr"); on.exit(par(usr))
par(usr = c(0, 1, 0, 1))
r <- abs(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)
test <- cor.test(x,y)
# borrowed from printCoefmat
Signif <- symnum(test$p.value, corr = FALSE, na = FALSE,
cutpoints = c(0, 0.001, 0.01, 0.05, 0.1, 1),
symbols = c("***", "**", "*", ".", " "))
text(0.5, 0.5, txt, cex = cex * r)
text(.8, .8, Signif, cex=cex, col=2)
}
pairs(USJudgeRatings[,c(2:3,6,1,7)], lower.panel=panel.smooth, upper.panel=panel.cor)
如果我改变:
text(0.5, 0.5, txt, cex = cex * r)
至:
text(0.5, 0.5, txt, cex = 0.8)
我大致得到了我正在寻找的效果。问题是我不知道如何使用 chart.Correlation() 本身更改此参数。这个问题有意义吗?