赞
踩
创建一个热力图(Heatmap)通常需要执行以下步骤:
准备数据:首先,您需要准备包含要绘制的相关性数据或其他数值数据的数据框。
计算相关性矩阵:如果您要绘制的是相关性热力图,可以使用cor()
函数来计算相关性矩阵。如果您要绘制其他类型的热力图,您可以根据需要计算数据的矩阵。
绘制热力图:使用适当的绘图函数来创建热力图。在R中,常用的绘图包包括ggplot2
、heatmap
等。以下是一个使用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") # 添加上半角的矩阵网格线
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。