如何调整corrplot()中显著性pch符号位置以避免与r值重叠?
解决corrplot中显著性符号与相关系数重叠的方法
哈,这个重叠问题我之前也碰到过!corrplot里的显著性pch符号和r值挤在一起确实影响阅读,给你几个实用的调整方案,亲测有效:
方案1:错开两者的显示位置
通过coef.pos参数指定相关系数的显示方位,和显著性符号的位置彻底错开。这个参数的可选值为1(右上,默认)、2(左上)、3(左下)、4(右下)。比如把系数放到右下,让pch符号留在右上/中心,完美避开重叠:
library(corrplot) ex.mat <- matrix(c(1.00,0.46,-0.75,1.00, 0.46,1.00,0.00,0.46, -0.75,0.00,1.00,-0.75, 1.00,0.46,-0.75,1.00), nrow = 4, ncol = 4) ex.pmat <- matrix(c(NA,0.2939,0.0522,0.0000, 0.2939,NA,1.0000,0.2939, 0.0522,1.0000,NA,0.0522, 0.0000,0.2939,0.0522,NA), nrow = 4, ncol = 4) corrplot(ex.mat, p.mat = ex.pmat, method = "circle", addCoef.col = "black", # 设置相关系数颜色 coef.pos = 4, # 将系数放在右下位置 sig.level = c(0.001, 0.01, 0.05), # 定义显著性水平 pch.col = "red") # 显著性符号颜色
方案2:改用星号标记显著性(推荐)
放弃默认的pch符号,用insig = "label_sig"参数让显著性以星号形式附加在相关系数的右上角,完全不会重叠,还能通过星号数量直观区分显著性程度:
corrplot(ex.mat, p.mat = ex.pmat, method = "circle", addCoef.col = "black", insig = "label_sig", # 用星号标记显著性 sig.level = c(0.001, 0.01, 0.05), # 对应***、**、* addCoef.cex = 0.9) # 可调整系数大小适配星号
方案3:缩小显著性符号尺寸
如果不想改变布局,直接用pch.cex参数缩小pch符号的大小,减少视觉重叠:
corrplot(ex.mat, p.mat = ex.pmat, method = "circle", addCoef.col = "black", pch.cex = 0.7, # 缩小显著性符号 sig.level = c(0.001, 0.01, 0.05))
你可以根据自己的绘图需求选择最合适的方法,一般方案2的可读性最好,推荐试试~
内容的提问来源于stack exchange,提问作者JKO
相关产品推荐
相关产品推荐

