当前位置:   article > 正文

R语言相关性热力图_r语言相关热力图

r语言相关热力图

创建一个热力图(Heatmap)通常需要执行以下步骤:

  1. 准备数据:首先,您需要准备包含要绘制的相关性数据或其他数值数据的数据框。

  2. 计算相关性矩阵:如果您要绘制的是相关性热力图,可以使用cor()函数来计算相关性矩阵。如果您要绘制其他类型的热力图,您可以根据需要计算数据的矩阵。

  3. 绘制热力图:使用适当的绘图函数来创建热力图。在R中,常用的绘图包包括ggplot2heatmap等。以下是一个使用ggplot2绘制相关性热力图的示例流程和函数解释:

用代码创建一个皮尔逊相关性图,用来可视化示例数据集中各列之间的相关性。详细代码如下

# 导入所需的库
library(ggplot2)

# 创建示例数据框
data <- data.frame(
  SS_1 = c(0.03,2, 0.02, 0.03),
  TS_1 = c(0.22, 0.22, 0.23, 0.23),
  WS_1 = c(24.31, 13.52, 25.48, NA),
  SoAR_1= c(8.32, 10.91, 10.31, 8.75),
  SS_2 = c(0.02, 0.03, 0.01, 0.05),
  TS_2 = c(0.26, 0.15, 0.15, 0.21),
  WS_2 = c(21.09, 17.83, 18.69, NA),
  SoAR_2 = c(9.67, 5.61, 15.82, 4.59),
  SS_3 = c(0.02, 0.1, 0.02, 0.02),
  TS_3 = c(0.21, 0.21, 0.16, 0.23),
  WS_3 = c(17.98, 21.45, 19.05, NA),
  SoAR_3= c(7.88, 5.05, 7.56, 8.95),
  SS_4= c(0.01, 0.03, 0.02, 0.01),
  TS_4= c(0.16, 0.19, 0.21, 0.22),
  WS_4= c(19.15, 17.01, 20.12, NA),
  SoAR_4= c(19.53, 7.07, 7.72, 16.87)
)

# 计算相关性矩阵
cor_matrix <- cor(data, use = "pairwise.complete.obs")
#打印相关系数矩阵
#print(cor_matrix)
# 将下半部分的数值设置为NA,仅保留半角相关性矩阵
cor_matrix[lower.tri(cor_matrix)] <- NA

# 创建相关性热力图并添加数值,只显示上半角相关性矩阵
ggplot(data = as.data.frame(as.table(cor_matrix)), 
       aes(x = Var1, y = Var2)) +
  geom_tile(data = subset(as.data.frame(as.table(cor_matrix)), !is.na(Freq)), aes(fill = Freq)) +
  geom_tile(data = subset(as.data.frame(as.table(cor_matrix)), is.na(Freq)), fill = "white") +
  geom_text(aes(label = round(Freq, 2)), vjust = 1, size = 3, na.rm = TRUE) +
  scale_fill_gradient2(low = "blue", mid = "white", high = "red", midpoint = 0,
                       breaks = seq(-1, 1, by = 0.2)) +  # 设置划分区间的分割点
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 55, hjust = 1)) +
  labs(x = "注:图中1、2、3、4为充足灌溉(W1)、轻度亏缺(W2)、中度亏缺(W3)、重度亏缺(W4),
       SS为可滴定酸,TS为可溶性固形物,WS为可溶性糖,SoAR为糖酸比。",y="果实品质(Fruit quality)")+
  theme(legend.key.height = unit(1.9, "cm"))+
  geom_tile(data = subset(as.data.frame(as.table(cor_matrix)), is.na(Freq)), fill = "white", color = "black",linetype = "dashed")+  # 添加下半角网格线,颜色为黑色
  geom_tile(data = subset(as.data.frame(as.table(cor_matrix)), !is.na(Freq)), fill = NA, color = "black")  # 添加上半角的矩阵网格线


 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/675373
推荐阅读
相关标签
  

闽ICP备14008679号