当前位置: 首页 > article >正文

R语言实战:从iris数据集出发,搞定科研图表中的组间差异显著性分析(ggplot2 + ggpubr指南)

R语言实战用iris数据集玩转科研图表中的显著性分析第一次接触科研图表时我被那些密密麻麻的星号和P值搞得晕头转向。直到发现R语言中的ggplot2和ggpubr组合才明白原来显著性分析可以如此优雅。iris数据集就像一位耐心的老师用它来学习组间差异分析再合适不过了。1. 数据准备与初步探索在开始任何分析前我们需要先了解数据的基本情况。iris数据集包含了三种鸢尾花setosa、versicolor和virginica的四个测量指标萼片长度、萼片宽度、花瓣长度和花瓣宽度。# 加载必要的包 library(ggplot2) library(ggpubr) library(dplyr) # 查看数据结构 head(iris) str(iris) summary(iris)运行这些代码后你会看到数据的前几行和结构概览。特别要注意的是Species列这是我们后续分组分析的关键。数据探索的四个关键点检查缺失值sum(is.na(iris))查看各组样本量table(iris$Species)计算各组描述统计量iris %% group_by(Species) %% summarise_all(mean)绘制基础分布图plot(iris$Sepal.Length ~ iris$Species)2. 可视化基础箱线图与散点图的组合艺术科研图表的核心是清晰传达信息。箱线图展示分布特征散点图显示个体数据点二者结合是最佳实践。# 基础箱线图 ggplot(iris, aes(x Species, y Sepal.Length)) geom_boxplot(aes(fill Species), alpha 0.7) theme_minimal()这个简单的箱线图已经能展示不同物种间萼片长度的差异。但我们可以做得更好# 增强版箱线图散点图 ggplot(iris, aes(x Species, y Sepal.Length)) geom_boxplot(aes(fill Species), outlier.shape NA, width 0.6) geom_jitter(aes(color Species), width 0.1, alpha 0.6) scale_fill_brewer(palette Set2) scale_color_brewer(palette Set2) labs(title 鸢尾花萼片长度比较, x 物种, y 萼片长度(cm)) theme_bw(base_size 12)图表优化技巧使用outlier.shape NA隐藏箱线图的异常值标记因为我们已经用散点图展示所有数据点调整width参数控制箱线图和散点图的水平分布选择适合印刷的配色方案如ColorBrewer的Set2添加清晰的标题和轴标签3. 统计检验方法的选择与实施在添加显著性标记前我们需要选择合适的统计检验方法。这取决于数据的分布特性和比较类型。3.1 正态性与方差齐性检验# Shapiro-Wilk正态性检验 by(iris$Sepal.Length, iris$Species, shapiro.test) # Bartlett方差齐性检验 bartlett.test(Sepal.Length ~ Species, data iris)如果数据符合正态分布且方差齐性可以使用ANOVA否则应考虑非参数检验如Kruskal-Wallis检验。3.2 组间差异的整体检验# Kruskal-Wallis检验非参数方法 kruskal.test(Sepal.Length ~ Species, data iris) # 如果数据满足参数检验条件可以使用ANOVA summary(aov(Sepal.Length ~ Species, data iris))4. 在图表中添加显著性标记ggpubr包的stat_compare_means函数让显著性标记变得简单。4.1 整体比较标记ggplot(iris, aes(x Species, y Sepal.Length)) geom_boxplot(aes(fill Species), width 0.6) geom_jitter(aes(color Species), width 0.1, alpha 0.6) stat_compare_means(method kruskal.test, label.y 8.5, label.x 1.5) scale_fill_brewer(palette Set2) scale_color_brewer(palette Set2) theme_bw()4.2 两两比较标记更常见的是需要比较各组之间的差异# 定义比较组 my_comparisons - list(c(setosa, versicolor), c(versicolor, virginica), c(setosa, virginica)) # 添加两两比较结果 ggplot(iris, aes(x Species, y Sepal.Length)) geom_boxplot(aes(fill Species), width 0.6) geom_jitter(aes(color Species), width 0.1, alpha 0.6) stat_compare_means(comparisons my_comparisons, method wilcox.test, label p.signif) stat_compare_means(method kruskal.test, label.y 8.5) scale_fill_brewer(palette Set2) scale_color_brewer(palette Set2) theme_bw()stat_compare_means常用参数参数说明常用取值method统计检验方法t.test, wilcox.test, anova, kruskal.testlabel标签类型p.signif星号, p.formatP值, p.valuecomparisons两两比较列表list(c(group1,group2),...)label.y标签垂直位置数值根据数据范围调整hide.ns是否隐藏不显著结果TRUE/FALSE5. 进阶技巧与常见问题解决5.1 处理重叠的显著性标记当比较组较多时标记可能会重叠。解决方法# 使用step.increase参数增加标记间距 ggplot(iris, aes(x Species, y Sepal.Length)) geom_boxplot(aes(fill Species), width 0.6) stat_compare_means(comparisons my_comparisons, method wilcox.test, label p.signif, step.increase 0.1) # 增加10%的间距5.2 调整显著性标记的显示方式有时我们需要更详细的统计信息# 显示检验方法和P值 ggplot(iris, aes(x Species, y Sepal.Length)) geom_boxplot(aes(fill Species), width 0.6) stat_compare_means(comparisons my_comparisons, method wilcox.test, label p.format, tip.length 0.01) # 调整连接线长度5.3 分面图表的显著性标记当数据有多个分组变量时分面是个好选择# 创建一个包含分组的新数据集 iris_group - iris iris_group$Treatment - rep(c(A,B), each 75)[1:150] # 分面图表 ggplot(iris_group, aes(x Species, y Sepal.Length)) geom_boxplot(aes(fill Species), width 0.6) geom_jitter(aes(color Species), width 0.1, alpha 0.6) stat_compare_means(method kruskal.test, label p.format) facet_wrap(~Treatment) theme_bw()5.4 保存高质量图表最后别忘了保存你的杰作p - ggplot(iris, aes(x Species, y Sepal.Length)) geom_boxplot(aes(fill Species), width 0.6) geom_jitter(aes(color Species), width 0.1, alpha 0.6) stat_compare_means(comparisons my_comparisons, method wilcox.test, label p.signif) scale_fill_brewer(palette Set2) scale_color_brewer(palette Set2) theme_bw() # 保存为PDF适合论文投稿 ggsave(iris_comparison.pdf, p, width 8, height 6, dpi 300) # 保存为PNG适合PPT展示 ggsave(iris_comparison.png, p, width 8, height 6, dpi 300)在实际分析中我发现调整图表细节往往比跑统计检验更耗时。一个实用的建议是先快速生成基础图表验证分析思路等确定方向后再花时间美化图表。ggplot2的图层系统让这种迭代过程变得非常高效。

相关文章:

R语言实战:从iris数据集出发,搞定科研图表中的组间差异显著性分析(ggplot2 + ggpubr指南)

R语言实战:用iris数据集玩转科研图表中的显著性分析 第一次接触科研图表时,我被那些密密麻麻的星号和P值搞得晕头转向。直到发现R语言中的ggplot2和ggpubr组合,才明白原来显著性分析可以如此优雅。iris数据集就像一位耐心的老师,…...

终极指南:如何用wxauto打造你的Windows微信智能助手

终极指南:如何用wxauto打造你的Windows微信智能助手 【免费下载链接】wxauto Windows版本微信客户端(非网页版)自动化,可实现简单的发送、接收微信消息,简单微信机器人 项目地址: https://gitcode.com/gh_mirrors/wx…...

别再手动加图例了!用MATLAB的text函数给你的图表做精准标注(附TeX公式写法)

别再手动加图例了!用MATLAB的text函数实现精准标注与TeX公式嵌入 科研绘图和工程报告中,图表标注的精确性直接影响信息传达效率。传统图例往往无法满足复杂数据场景的需求——比如在特定峰值标注微分方程、在拐点添加统计显著性符号,或在多组…...

7-Zip深度解析:突破性压缩技术如何重塑文件管理效率

7-Zip深度解析:突破性压缩技术如何重塑文件管理效率 【免费下载链接】7z 7-Zip Official Chinese Simplified Repository (Homepage and 7z Extra package) 项目地址: https://gitcode.com/gh_mirrors/7z1/7z 在数据爆炸式增长的今天,文件压缩已成…...

避开这些坑!STM32G4 ADC采集的两种实战写法(轮询vs中断)与性能对比

STM32G4 ADC采集实战:轮询与中断模式深度对比与选型指南 在嵌入式系统开发中,ADC(模数转换器)模块的性能优化往往直接影响整个系统的响应速度和稳定性。对于使用STM32G4系列(如STM32G431RBT6)的开发者而言&…...

Android SQLite Asset Helper源码剖析:Utils与VersionComparator深度解析

Android SQLite Asset Helper源码剖析:Utils与VersionComparator深度解析 【免费下载链接】android-sqlite-asset-helper An Android helper class to manage database creation and version management using an applications raw asset files 项目地址: https:/…...

可视化图表代码学习|如何绘制一条正弦波

以下是绘制正弦波的 Highcharts 示例代码。请注意,这里使用了虚构的数据来展示正弦波的形状Highcharts.chart(container, {title: {text: 正弦波},xAxis: {title: {text: 时间}},yAxis: {title: {text: 幅度}},series: [{name: 正弦波,data: (function () {const da…...

别再用Node.js写MCP网关了!C++专家团队实测:相同硬件下吞吐提升47倍,时延降低92%

更多请点击: https://intelliparadigm.com 第一章:MCP协议深度解析与C网关设计哲学 MCP(Microservice Communication Protocol)并非标准化组织定义的协议,而是面向云原生微服务场景定制的轻量级二进制通信协议&#x…...

终极指南:如何在Windows上实现Mac风格的三指拖拽功能

终极指南:如何在Windows上实现Mac风格的三指拖拽功能 【免费下载链接】ThreeFingersDragOnWindows Enables macOS-style three-finger dragging functionality on Windows Precision touchpads. 项目地址: https://gitcode.com/gh_mirrors/th/ThreeFingersDragOnW…...

AutoSubs API集成教程:在Davinci Resolve中实现自动化字幕处理

AutoSubs API集成教程:在Davinci Resolve中实现自动化字幕处理 【免费下载链接】auto-subs Instantly generate AI-powered subtitles on your device. Works standalone or connects to DaVinci Resolve. 项目地址: https://gitcode.com/gh_mirrors/au/auto-subs…...

Stratus Red Team实战教程:从零开始模拟AWS攻击技术

Stratus Red Team实战教程:从零开始模拟AWS攻击技术 【免费下载链接】stratus-red-team :cloud: :zap: Granular, Actionable Adversary Emulation for the Cloud 项目地址: https://gitcode.com/gh_mirrors/st/stratus-red-team Stratus Red Team是一款功能…...

3分钟掌握人类微生物组数据分析:curatedMetagenomicData终极指南

3分钟掌握人类微生物组数据分析:curatedMetagenomicData终极指南 【免费下载链接】curatedMetagenomicData Curated Metagenomic Data of the Human Microbiome 项目地址: https://gitcode.com/gh_mirrors/cu/curatedMetagenomicData 还在为宏基因组数据分析…...

别再乱装PyTorch了!保姆级教程教你用conda搞定CUDA 11.3和PyTorch 1.11.0的完美匹配

深度学习环境搭建避坑指南:PyTorch与CUDA版本精准匹配实战 刚接触深度学习的新手们,往往在第一步环境搭建就遭遇滑铁卢。最常见的问题莫过于PyTorch与CUDA版本不匹配导致的安装失败或运行时错误。本文将手把手带你避开这些坑,从显卡驱动检查到…...

告别手动截图!用OpenCV + Python自动分割手写笔记,5分钟搞定电子化整理

5分钟极简工作流:用PythonOpenCV打造智能手写笔记分割器 每次整理手写笔记时,最头疼的莫过于要把密密麻麻的纸质内容转为电子版。上周我翻出三年前的课堂笔记想数字化保存,结果花了两小时手动截图——直到发现OpenCV这个宝藏工具。今天分享的…...

【译】Visual Studio 三月更新 —— 打造专属自定义 Agent

本月 Visual Studio 更新为您提供了自定义 GitHub Copilot 的全新方式。自定义 Agent 支持您打造适配团队工作流的专用 Copilot Agent,依托项目所需的工具与知识源提供支持。除此之外,Agent 技能可提供可复用的指令集,而全新的 find_symbol 工…...

OpenRGB:告别多品牌RGB软件混乱,一站式跨平台灯光控制解决方案

OpenRGB:告别多品牌RGB软件混乱,一站式跨平台灯光控制解决方案 【免费下载链接】OpenRGB Open source RGB lighting control that doesnt depend on manufacturer software. Supports Windows, Linux, MacOS. Mirror of https://gitlab.com/CalcProgramm…...

蓝桥杯C/C++真题刷题攻略:从“数字三角形”到“全球变暖”的解题思路全解析

蓝桥杯C/C真题深度解析:从数字三角形到全球变暖的算法思维跃迁 在算法竞赛的征途中,蓝桥杯始终是检验编程能力的重要试金石。本文将以"数字三角形"和"全球变暖"两道经典题目为切入点,系统剖析动态规划与图论算法的核心思…...

缓存金字塔上的红色闪电:Redis 如何借力 CPU 的 L1/L2/L3 与 TLB 飞驰

同样是内存操作,你用 HashMap 做缓存和 Redis 做缓存,吞吐量差了一个数量级。 很多人把原因归结为“Redis 是 C 写的,Java 太‘重’”。 真相远比你想象的更底层——Redis 的每一纳秒加速,都踩在 CPU 的缓存层次、SRAM 与 DRAM 的…...

告别重启!IDEA里用JRebel插件实现Java代码热更新的保姆级配置(附离线激活指南)

告别重启!IDEA里用JRebel插件实现Java代码热更新的保姆级配置(附离线激活指南) 每次修改完Java代码后,等待服务器重启的那几分钟总是让人抓狂。特别是调试复杂业务逻辑时,改一行代码就要重启一次,开发效率直…...

D2RML终极指南:暗黑2重制版多开神器,告别繁琐登录的终极解决方案

D2RML终极指南:暗黑2重制版多开神器,告别繁琐登录的终极解决方案 【免费下载链接】D2RML Diablo 2 Resurrected Multilauncher 项目地址: https://gitcode.com/gh_mirrors/d2/D2RML 还在为暗黑破坏神2重制版的多账户切换而烦恼吗?每次…...

如何在本地视频中添加B站弹幕:BiliLocal完整使用指南

如何在本地视频中添加B站弹幕:BiliLocal完整使用指南 【免费下载链接】BiliLocal add danmaku to local videos 项目地址: https://gitcode.com/gh_mirrors/bi/BiliLocal 还在羡慕B站视频的弹幕互动氛围吗?其实你的本地视频也能拥有同样的乐趣&am…...

ml-intern论文工具详解:如何快速定位顶会论文并提取关键信息

ml-intern论文工具详解:如何快速定位顶会论文并提取关键信息 【免费下载链接】ml-intern 🤗 ml-intern: an open-source ML engineer that reads papers, trains models, and ships ML models 项目地址: https://gitcode.com/GitHub_Trending/ml/ml-in…...

百度文库文档获取终极指南:三步实现纯净PDF保存方案

百度文库文档获取终极指南:三步实现纯净PDF保存方案 【免费下载链接】baidu-wenku fetch the document for free 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wenku 在数字化学习与资料收集的过程中,百度文库作为海量文档资源平台&#x…...

百度网盘秒传链接使用指南:5分钟掌握高效文件分享技巧

百度网盘秒传链接使用指南:5分钟掌握高效文件分享技巧 【免费下载链接】baidupan-rapidupload 百度网盘秒传链接转存/生成/转换 网页工具 (全平台可用) 项目地址: https://gitcode.com/gh_mirrors/bai/baidupan-rapidupload 如果你经常使用百度网盘分享大文件…...

3分钟快速上手:DOL-Lyra整合包如何让Degrees of Lewdity游戏体验提升10倍?

3分钟快速上手:DOL-Lyra整合包如何让Degrees of Lewdity游戏体验提升10倍? 【免费下载链接】DOL-CHS-MODS Degrees of Lewdity 整合 项目地址: https://gitcode.com/gh_mirrors/do/DOL-CHS-MODS 你是否曾经因为Degrees of Lewdity的英文界面而感到…...

深度学习深度前馈网络(三)—— 隐藏单元(激活函数)(二十五)

1. 定位导航 第 23 篇通过 XOR 理解了"非线性激活"的必要性。第 24 篇详解了输出单元的选择。本篇专攻隐藏单元——网络中间层用的激活函数。 核心争议:激活函数的选择是深度学习中最少有"理论指导"、最多依赖经验和直觉的领域之一。Goodfellow 自己说:…...

Windhawk深度解析:重塑Windows个性化体验的开源方案

Windhawk深度解析:重塑Windows个性化体验的开源方案 【免费下载链接】windhawk The customization marketplace for Windows programs: https://windhawk.net/ 项目地址: https://gitcode.com/gh_mirrors/wi/windhawk 你是否曾对Windows系统的千篇一律感到厌…...

高级Python概念揭秘:Complete-Python-Bootcamp迭代器、生成器、装饰器

高级Python概念揭秘:Complete-Python-Bootcamp迭代器、生成器、装饰器 【免费下载链接】Complete-Python-Bootcamp 项目地址: https://gitcode.com/gh_mirrors/co/Complete-Python-Bootcamp 在Python编程中,迭代器、生成器和装饰器是提升代码效率…...

HTMX最佳实践:如何利用awesome-htmx构建企业级应用

HTMX最佳实践:如何利用awesome-htmx构建企业级应用 【免费下载链接】awesome-htmx Awesome things about htmx 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-htmx awesome-htmx是一个全面的资源集合,汇集了关于htmx的文章、工具、视频和…...

百度网盘秒传链接终极指南:3分钟掌握文件极速转存技巧

百度网盘秒传链接终极指南:3分钟掌握文件极速转存技巧 【免费下载链接】baidupan-rapidupload 百度网盘秒传链接转存/生成/转换 网页工具 (全平台可用) 项目地址: https://gitcode.com/gh_mirrors/bai/baidupan-rapidupload 还在为百度网盘文件分享速度慢而烦…...