You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中绘制定制化相关性热力图(仅展示ab1与其他列关联)

如何在R中绘制指定列的相关性热力图

问题背景

我拥有一个包含ab1、ab2、ab3、ab4、ab5、ab6共6列的dataframe,仅需要绘制ab1分别与ab2、ab3、ab4、ab5、ab6之间的相关性热力图,无需展示其他列之间的关联,最终要得到2*6规格的热力图。

实现步骤

1. 准备数据(示例)

首先生成模拟数据,或替换为你的真实数据集:

set.seed(123)
df <- data.frame(ab1 = rnorm(100),
                 ab2 = rnorm(100),
                 ab3 = rnorm(100),
                 ab4 = rnorm(100),
                 ab5 = rnorm(100),
                 ab6 = rnorm(100))

2. 构建目标相关矩阵

我们需要提取ab1与所有列的相关性,并构造2行6列的矩阵以满足规格要求:

# 计算完整相关矩阵
cor_matrix <- cor(df)
# 构造2行6列的矩阵:第一行是ab1与所有列的相关系数,第二行重复ab1的相关系数(或自相关+其他列相关系数)
target_cor <- rbind(cor_matrix["ab1", ], cor_matrix["ab1", ])
# 设置行名,保持与列名对应
rownames(target_cor) <- c("ab1", "ab1")

3. 绘制热力图

使用pheatmap包绘制(未安装则先运行install.packages("pheatmap")):

library(pheatmap)
pheatmap(target_cor,
         cluster_rows = FALSE,
         cluster_cols = FALSE,
         display_numbers = TRUE, # 显示具体相关系数
         cellwidth = 45,
         cellheight = 45,
         main = "ab1与各列相关性热力图")

关键说明

  • 构造2行矩阵是为了满足2*6的规格,第二行可重复ab1的相关系数,不影响ab1与其他列的关联展示
  • 关闭聚类(cluster_rows = FALSE和cluster_cols = FALSE)可保持列的原始顺序
  • 可选:若需要第二行显示不同内容,可调整target_cor的第二行数据,只要保证行数为2即可

内容的提问来源于stack exchange,提问作者nicholaspooran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 10:57:41