R语言ggplot2 | 热图+随机森林重要性!升级版~

📋文章目录

  • 原图
  • 复现
    • 定义ggrf_ggcor_plot()函数
    • 加载数据集
    • 一键出图
    • 函数优点

   今天推出一个升级版: ggrf_ggcor_plot的函数。只需要输入 响应变量的矩阵解释变量的矩阵,就能轻松一键生成随机森林重要性+相关性热图。

原图

   所需复现的随机森林变量重要性+相关性热图:

在这里插入图片描述
这整张图由两张结构相似的子图组成,分别代表玉米和水稻。以左侧图为例,它分为两个主要部分。上方的柱状图显示了各个土壤环境变量在随机森林模型中的解释量,下方的热图表示微生物物种丰度与土壤环境变量之间的相关性。其中,热图中每列x轴特定的土壤环境变量作为随机森林模型中的因变量,每个微生物物种的丰度作为随机森林模型中的特征变量。热图中的小圆圈的大小则表示每个特征变量在随机森林模型中的重要性(对应的%MSE值,且p<0.05)。总体来说,这张图旨在揭示不同土壤环境变量如何影响微生物群落的丰度,以及这些微生物群落在随机森林模型中对各个土壤环境变量的重要性。

复现

定义ggrf_ggcor_plot()函数

source("ggrf_ggcor_plot.R")

重新定义了ggrf_ggcor_plot()函数,该函数能够做到一键生图。

需要注意的是:这个函数是在R版本4.2.2基础上定义的。此外,只保证在响应变量和特征变量的数据集样本量相同下进行运行。
主要参数*:

  • response_data:响应变量的数据集,格式为数据框。(因变量)
  • feature_data:解释变量的数据集,格式为数据框。(自变量)
  • seed:种子数,保证每次运行结果一致,必须为整数。

其余参数可以默认,主要包括相关性分析的参数、随机森林及特征变量重要性等细节参数。函数的三个点"…"表示传参用法,这里主要在进行可视化随机森林模型解释量的柱状图中使用到。

输出结果

  • list列表
  • rf_results包括每个随机森林模型的摘要及解释量和p值;
  • cor_df是两个数据集的相关性分析结果,包括对应名称、相关性系数及p值;
  • rf_plot是每个随机森林模型的解释量及p值是否显著的ggplot可视化结果;
  • cor_plot是响应变量和解释变量两个数据集的相关性热图,颜色表示正负,深浅表示大小,圆圈表示的随机森林中不同特征变量对因变量的重要性(只展示%MSE对应p<0.05的)

加载数据集

  • 加载微生物数据
OTU <- openxlsx::read.xlsx("OTU.xlsx", 1)
head(OTU)


行为样本,列为微生物群落种类。

  • 加载土壤环境数据
ENV <- openxlsx::read.xlsx("ENV.xlsx", 1)
head(ENV)


行为样本,列为土壤环境变量。

一键出图

rf_cor_result <- ggrf_ggcor_plot(ENV, OTU, seed = 123, rfp_num_cores = 12, limits = c(-10, 80), breaks = seq(0, 80, 20))
rf_cor_result$rf_plot
rf_cor_result$cor_plot
rf_cor_result$rf_cor_plot

这里,我们处理选择了响应变量解释变量的两个数据集,还设定了seed种子数=123,并设置了在计算计算每个特征变量的重要性%MSE及p值时的核心数=12,这样可以加快我们的运行速度。

需要注意的是我上面提到了"…"作为传参,我们设定在了ggplot2可视化y轴范围的函数中,因此为了让整个图的比例更协调,我定义了y轴的上下限范围limits = c(-10, 80)以及相应的范围间隔breaks = seq(0, 80, 20)

图1,显示的是随机森林模型的解释量。

图2,显示的是相关性分析热图。

图3,是我们的目标图,随机森林重要性+相关性热图。

至此,一键出图已经完成。考虑到大家可能对图形的展示风格或者类型持有不同想法和意见,所以输出的结果为list,也保留了对应随机森林重要性和相关性热图的数据。

用一下代码就可以调用:

  • 相关性分析的数据结果
rf_cor_result$cor_df

  • 随机森林模型的数据结果
rf_cor_result$rf_results

函数优点

  • 便捷使用:一键生成图表,适合快速呈现分析结果。
  • 多样输出:提供多种输出选项,以满足不同需求的用户。
  • 灵活参数:可根据需要自定义参数,具备推广和定制的潜力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/773894.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

推荐5款测试数据生成工具!

一个成功、有效的测试策略由下面几个基本部分组成&#xff1a;完整的测试覆盖率、最小化的环境影响和健壮的测试数据。 其中测试数据尤其重要&#xff0c;其质量直接关系到测试的有效性。可以把测试数据看作是保持测试引擎运行的燃料——高质量的测试数据有助于确保测试执行的…

极速体验DolphinScheduler 3.2.1 Standalone 版[一]

文章目录 极速体验DolphinScheduler 3.2.1 Standalone 版前置准备工作启动 DolphinScheduler Standalone Server解压并启动 DolphinScheduler登录 DolphinScheduler 启停服务配置数据库 极速体验DolphinScheduler 3.2.1 Standalone 版 Standalone 仅适用于 DolphinScheduler 的…

【go从入门到精通】函数详解

作者简介&#xff1a; 高科&#xff0c;先后在 IBM PlatformComputing从事网格计算&#xff0c;淘米网&#xff0c;网易从事游戏服务器开发&#xff0c;拥有丰富的C&#xff0c;go等语言开发经验&#xff0c;mysql&#xff0c;mongo&#xff0c;redis等数据库&#xff0c;设计模…

【蓝桥杯】tarjan算法

一.概述 Tarjan 算法是基于DFS的算法&#xff0c;用于求解图的连通性问题。 Tarjan 算法可以在线性时间内求出&#xff1a; 无向图&#xff1a; 割点与桥双连通分量 有向图&#xff1a; 强连通分量必经点与必经边 1.割点&#xff1a; 若从图中删除节点 x 以及所有与 x 关联的…

Intel AIPC发布会:开启AI终端应用的新纪元

2024年3月27日下午&#xff0c;Intel在北京市朝阳区凤凰中心举办了AIPC发布会开启了AI终端应用的新征程。 整场发布会围绕着‘让不可想象&#xff0c;变为寻常’主线进行。在本次发布会上&#xff0c;众多PC端的AI应用得到了展示&#xff0c;包括&#xff1a;智谱AI&#xff…

第十一届蓝桥杯大赛第二场省赛试题 CC++ 研究生组-寻找2020

数据很恶心&#xff0c;但是考点挺友好~ 把测试数据黏贴到记事本中&#xff0c;知测试数据的行列数 然后根据规则判断2020是否出现&#xff0c;并累计其次数即可。 判断可能需要注意超出下标&#xff0c;可以索性把数组定大些。 #include<stdio.h> const int N 310; ch…

哈曼卡顿音箱解决关闭自动休眠 + 自用车载音乐分享制作

一&#xff1a;哈曼卡顿音箱解决关闭自动休眠 1. 背景&#xff1a;每天做最多的事情就是开音箱电源。问了客服&#xff0c;说只有玻璃4才能关闭休眠。搞得我都想买新音箱了。 2. 解决办法&#xff1a;电脑开机启动一个阻止功放休眠.exe&#xff0c;可以设置自动启动&#x…

Redis入门到实战-第十九弹

Redis实战热身Count-min-sketch篇 完整命令参考官网 官网地址 声明: 由于操作系统, 版本更新等原因, 文章所列内容不一定100%复现, 还要以官方信息为准 https://redis.io/Redis概述 Redis是一个开源的&#xff08;采用BSD许可证&#xff09;&#xff0c;用作数据库、缓存、…

Android Studio 无法下载 gradle-7.3.3-bin.zip

下载新的Android Studio&#xff0c;然后创建新的工程时&#xff0c;出现报错&#xff1a;Could not install Gradle distribution from https://services.gradle.org/distributions/gradle-7.3.3-bin.zip 或者超时&#xff0c;我们可以复制&#xff1a;https://services.grad…

IntellIJ Idea 内存不足时怎么设置

文章目录 前言背景一、 内存显示二、 在IDEA中设置内存三 、在IDEA中打开内存的设置文件四、 JetBrains ToolBox 中安装 IntellIJ Idea配置文件位置总结 前言 请各大网友尊重本人原创知识分享&#xff0c;谨记本人博客&#xff1a;南国以南i、 提示&#xff1a;以下是本篇文章…

【React】react 使用 lazy 懒加载模式的组件写法,外面需要套一层 Loading 的提示加载组件

react 组件按需加载问题解决 1 错误信息2 解决方案 1 错误信息 react 项目在创建 router 路由时&#xff0c;使用 lazy 懒加载时&#xff0c;导致以下报错&#xff1a; The above error occurred in the <Route.Provider> component:Uncaught Error: A component suspe…

qiankun实现基座、子应用样式隔离

目录 qiankun 实现主应用与子应用样式隔离使用CSS-in-JS来实现样式隔离react-jssstyled-components qiankun 实现主应用与子应用样式隔离 qiankun 之中默认的样式隔离是针对子应用与子应用之间的。至于主应用的样式会影响到子应用&#xff0c;若需要&#xff0c;则需要配置进行…

计算机基础系列 —— CPU

“Make everything as simple as possible, but no simpler.” – Albert Einstein 文中提到的所有实现都可以参考&#xff1a;nand2tetris_sol&#xff0c;但是最好还是自己学习课程实现一遍&#xff0c;理解更深刻。 之前的文章里我们介绍了 Register、PC、RAM 和 ALU&#…

【Linux实践室】Linux用户管理实战指南:用户密码管理操作详解

&#x1f308;个人主页&#xff1a;聆风吟_ &#x1f525;系列专栏&#xff1a;Linux实践室、网络奇遇记 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 一. ⛳️任务描述二. ⛳️相关知识2.1 &#x1f514;用户密码存放地及方式2.2 &#x1f514;使用…

PAT乙级 1046 划拳 C语言实现

划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为&#xff1a;每人口中喊出一个数字&#xff0c;同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和&#xff0c;谁就赢了&#xff0c;输家罚一杯酒。两人同赢或两人同输则继续下一轮&…

游戏本续航@控制中心的省电模式效果如何

文章目录 节能模式长续航模式&#x1f47a;相关工具 节能模式长续航模式&#x1f47a; 蓝天模具Control Center中的模式 根据我的试验,以及软件的提示,可以发现 Power Saving是最省电的,儿Quiet模式并不省电,它会启用独立显卡,只不过风扇的转速不像娱乐模式和性能模式那么积极而…

UE5学习日记——蓝图节点前缀关键字整理

一、起因 节点如海&#xff0c;中英文翻译的时候还是有差别的&#xff0c;比如&#xff1a; 同一个中文&#xff0c;可能在英文里完全不同&#xff0c;连出现位置可能都不一样 附加 Attach Actor To Component&#xff08;将Actor附加到组件&#xff09;Append Array&#xf…

mac 配置 ssh

mac 系统如何生成秘钥的方法 【第一步】. 启动台打开终端&#xff0c;输入 cd ~/.ssh 检查是否已经存在了SSH密钥。如果你看到类似id_rsa.pub的文件&#xff0c;说明你已经有了一对公钥和私钥&#xff0c;可以跳过第 2 步和第 3 步。 【第二步】 在终端输入ssh-keygen -t rsa …

1.3-数组-977. 有序数组的平方★

977. 有序数组的平方 ★ 力扣题目链接&#xff0c;给你一个按 非递减顺序 排序的整数数组 nums&#xff0c;返回 每个数字的平方 组成的新数组&#xff0c;要求也按 非递减顺序 排序。 1 < nums.length < 104-104 < nums[i] < 104nums 已按 非递减顺序 排序 示例…

如何结合NLP和图像描述技术

结合自然语言处理&#xff08;NLP&#xff09;和图像描述技术的例子有很多&#xff0c;以下是一些具体的应用场景&#xff1a; 1. **自动图像描述生成器**&#xff1a; - 用户上传一张图片到应用程序。 - 应用程序使用计算机视觉技术分析图片内容。 - NLP算法如序列到…