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")  # 添加上半角的矩阵网格线


 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lltanwh/article/details/132957131

智能推荐

关于构建数据仓库的几个问题_从需求出发建设数仓会有什么问题-程序员宅基地

文章浏览阅读1.6k次。写在前面数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策(Decision Making Support)。近年来,随着大数据的应用不断深入,构建企业级数据仓库成为了企业进行精细化运营的一种趋势。从管理者的视角来看,数据仓库是赋能业务并辅助决策的一种工具,从开发者的视角来看,数据仓库是一堆数据模型的集合。数仓开发是一个系_从需求出发建设数仓会有什么问题

手写B+树-程序员宅基地

文章浏览阅读3.2k次。插入关键字 40 ,按照第 2 种情况将结点分裂,并将关键字 37 上移到父结点,发现父结点 [15、37、44、59] 包含的关键字的个数大于 M ,所以将结点 [15、37、44、59] 分裂为两个结点 [15、37] 和结点 [44、59] ,并将关键字 37 上移到父结点中 [37、59、97] . 父结点包含关键字个数没有超过 M ,插入结束。比如插入关键字 12 ,插入关键字所在的结点的 [10,15] 包含两个关键字,小于 M ,则直接插入关键字 12。B+树插入删除时间复杂度为0(1)_手写b+树

基于SSM企业人力资源管理系统的设计与实现 |计算机毕业设计|Java毕业设计|课程设计|Python毕设|小程序|人力资源管理|人事管理系统|_基于ssm的企业人力资源管理系统的设计与实现-程序员宅基地

文章浏览阅读82次。在答辩过程中,要充分展示对项目的深入研究和对技术的理解,结合实际案例和数据,清晰阐述项目的创新、可行性和应用价值,回答评委问题时要有条理、准确表达自己的观点。管理员:首页、用户管理、管理员、员工、更多管理、部门管理、 请假申请、人事考勤、公司绩效、奖惩信息、通知公告、员工工资等。员工:首页、更多管理、请假申请、人事考勤、公司绩效、奖惩信息、通知公告、员工工资等。该项目含有源码、论文等资料、配套开发软件、软件安装教程、项目发布教程等。前端技术:JavaScript、VUE.js(2.X)、css3。_基于ssm的企业人力资源管理系统的设计与实现

Hector双足机器人MPC控制_force-and-moment-based model predictive control fo-程序员宅基地

文章浏览阅读940次,点赞14次,收藏16次。首先根据当前机器人状态选择合适的步态模式(站立。然后根据步态模式生成相应的脚部期望轨迹,)是摆动腿阶段,应该采用另外的。最后更新机器人的控制命令。问题的求解使用第三方库。)是跟摩擦系数有关,_force-and-moment-based model predictive control for achieving highly dynamic

ASP.NET基础函数四:CBool(expression) 转换表达式为Boolean 型态-程序员宅基地

文章浏览阅读358次,点赞8次,收藏8次。如果表达式所计算的值非零,则 CBool函数返回 True;否则返回 False。下面的示例使用 CBool函数将一个表达式转成 Boolean类型。Check = CBool(A = B) 'Check设为 True。Check = CBool(A) 'Check设为 False。B =1 ' 初始化变量。A = 0 '定义变量。

【elasticsearch系列】双击elasticsearch.bat闪退,日志排查报错信息_elasticsearch my-application-2023-03-26-1.log.gz-程序员宅基地

文章浏览阅读1.9k次。打开my-application.log日志文件,寻找报错信息,如下:[1] bootstrap checks failed[1]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured看提示._elasticsearch my-application-2023-03-26-1.log.gz

随便推点

通过c#实现opc ua客户端与kepserve匿名连接-程序员宅基地

文章浏览阅读1.7k次。c#实现OPC UA客户端连接kepware_kepserve

UEFI Shell命令操作总结_uefi shell能用来解决什么-程序员宅基地

文章浏览阅读5.9k次,点赞3次,收藏20次。什么是UEFIShellUEFIShell是一种特殊对待UEFI_APPLICATION。提供用户和UEFI系统之间的一个接口。它有很强大的功能,但是正常启动计算机系统时,不会用到UEFIShell,只有当系统启动出现问题,或者用户就是喜欢UEFIShell(就像博主我一样,深深的爱着UEFI),主动进入UEFIShell来对计算机系统进行配置,那么就到了UEFIShell大显身手,炫酷吊炸天的时候来了。玩儿转UEFIShellShell提供了丰富的内部命令。可以分为几大类:调试..._uefi shell能用来解决什么

在页面中添加两个 <select> 标签,用来显示年份和月份;同时添加两个 <ul> 标签,一个用来显示星期,另一个用来显示日期 在 JavaScript 脚本中动态添加年份和月份,获取当前日期的年份_javascript select填充月份-程序员宅基地

文章浏览阅读4.3k次,点赞3次,收藏6次。查看本章节查看作业目录需求说明:使用 JavaScript 中的 Date 对象,在页面上显示一个万年历。选择不同的年份和月份,在页面中显示当前月的日历实现思路:在页面中添加两个 <select> 标签,用来显示年份和月份;同时添加两个 <ul> 标签,一个用来显示星期,另一个用来显示日期在 JavaScript 脚本中动态添加年份和月份,获取当前日期的年份和月份,显示到 <select> 标签上根据 <select> 标签上显_javascript select填充月份

九度OJ 1174 查找第K小数 (STL)_oj 第k小整数 c++-程序员宅基地

文章浏览阅读2.4k次。题目1174:查找第K小数时间限制:1 秒内存限制:32 兆特殊判题:否提交:5161解决:2081题目描述:查找一个数组的第K小的数,注意同样大小算一样大。 如 2 1 3 4 5 2 第三小数为3。输入:输入有多组数据。每组输入n,然后输入n个整数(1输出:输出第k小的整数_oj 第k小整数 c++

阻容感基础10:电感器分类(1)-片式电感器_亨特h-程序员宅基地

文章浏览阅读814次,点赞3次,收藏4次。我们接触到的电感器是各种各样的:有绕着圈圈的,有贴片的(0805/0603/0402/0201),还有一些是四四方方的。那么这些电感有什么差别呢?本章我们来一起看贴片电感器和磁珠,我们大多只知道磁珠是耗能元件而电感是储能元件,从原理上为什么会是这样的效果呢?它们在结构上有差别么?ps:“暗物质”看不见摸不着,据说每秒钟有几吨的暗物质穿过我们的身体,那我们是怎么知道暗物质这玩意存在的呢?_亨特h

微信扫码下载APK遮罩提示示例-程序员宅基地

文章浏览阅读259次。由于微信的限制,应用文件在内置浏览器中下载全部被屏蔽掉,造成很多人用微信扫描二维码下载时,界面显示一片空白,容易误导以为在下载呢。按照当前主流习惯,做一个提示用户在浏览器中打开下载的遮罩。网上很多现成的例子,解释的也很详细,但感觉没有直接上手可用的例子,因此,我打算写个示例。<!DOCTYPE html><html><head><met..._微信扫码下载apk遮罩提示