如何使用R corrplot包绘制指定行列带显著性标记的相关热图
解决方法
你只需要先对相关系数矩阵、显著性p值矩阵做对应行列筛选,再调整绘图参数即可实现需求,具体操作如下:
1 定义需保留的行列名称
先把你指定的行列名存为两个独立向量:
# 需保留的行名 keep_rows <- c("mpg", "cyl", "disp", "hp", "drat") # 需保留的列名 keep_cols <- c("wt", "qsec", "vs", "am", "gear", "carb")
2 同步筛选相关系数矩阵和p值矩阵
要保证两个矩阵的筛选规则完全一致,避免后续显著性标记错位:
# 筛选相关系数矩阵 M_filtered <- M[keep_rows, keep_cols] # 筛选对应的显著性p值矩阵 p_filtered <- testRes$p[keep_rows, keep_cols]
3 调整绘图参数后输出
你原来的代码里type = 'upper'、diag = FALSE是针对对称全方阵的参数,筛选后的矩阵是5行6列的非对称矩阵,需要删掉这两个参数;如果要保留你指定的行列展示顺序,把order = 'AOE'改为order = 'original'即可:
corrplot(M_filtered, p.mat = p_filtered, method = 'color', sig.level = c(0.001, 0.01, 0.05), pch.cex = 0.9, insig = 'label_sig', pch.col = 'grey20', order = 'original')
参数调整说明
- 如果你不需要自己指定行列顺序,想要保留自动排序的效果,
order参数可以保留为'AOE' - 只要相关系数矩阵和p值矩阵的筛选规则完全一致,原来的显著性标记逻辑不会失效,和你之前的设置效果完全相同
内容的提问来源于stack exchange,提问作者Shaminur
相关产品推荐
相关产品推荐

