R语言中使用ggplot2绘制散点图箱线图,附加显著性检验

news2025/2/4 23:45:05

散点图可以直观反映数据的分布,箱线图可以展示均值等关键统计量,二者结合能够清晰呈现数据蕴含的信息。

alt

本篇笔记主要内容:介绍R语言中绘制箱线图和散点图的方法,以及二者结合展示教程,添加差异比较显著性分析,绘制如上结果图。


加载R包与数据

library(ggpubr) 
library(patchwork) 
library(ggsci)
library(tidyverse)
# 使用R语言自带的iris数据集,并随机分成两组
data <- iris
data$Group <- NA
data$Group[sample(1:nrow(data),size = (nrow(data)/2))] <- "A"
data$Group[is.na(data$Group)] <- "B"

alt 在实际数据可视化过程中,输入数据格式也和上面类似,至少有两列,其中一列是分类,另一列是数值。

绘制箱线图

ggplot(data,aes(x = Species,y = Sepal.Width)) +
    geom_boxplot(aes(fill = Species),alpha = 0.7)

这里将Species设置为x轴,Sepal.Width设置为y轴,箱子内部填充颜色与Species映射。 alt

这段代码的作用是创建一个箱形图,显示不同物种(Species)的萼片宽度(Sepal.Width)分布,且不同物种的箱形用不同颜色表示,并且这些颜色半透明。

这种类型的图表通常用于展示和比较不同类别或组的数据分布情况,特别是中位数、四分位数等统计信息。

绘制散点图

ggplot(data,aes(x = Species,y = Sepal.Width)) +
    geom_jitter(aes(color = Species))
alt

利用ggplot2包创建散点图,并通过geom_jitter功能添加一些随机噪声来分散点,以便更清晰地展示数据。

绘制箱线图+散点图

p <- ggplot(data,aes(x = Species,y = Sepal.Width)) +
    geom_boxplot(aes(fill = Species),alpha = 0.7)+
    geom_jitter(aes(color = Species))+
    scale_fill_manual(values = c("#f79f1f","#a3cb38","#1289a7"))+
    scale_color_manual(values = c("#f79f1f","#a3cb38","#1289a7"))+
    theme_bw()+
    theme(panel.grid = element_blank())
p
alt

单因素多水平比较

对于两组以上的独立样品,如果数据同时满足正态性和方差齐性,可以采用方差分析(ANOVA)或者Kruskal检验,如果不满足可采用Kruskal检验。

p <- p + stat_compare_means(
    method = "kruskal.test",
    label = "p.format",
    label.x = 2,
    label.y = 4,
    show.legend = F
)
p
alt

可以看到上图中自动标注的显著性P值,通过修改label参数可以转换展示方式,默认显示检验方法和p值。

p.format只显示p值不显示检验方法,p.signif显示显著性水平符号,ns: p > 0.05、*: p <= 0.05、**: p <= 0.01、***: p <= 0.001、****: p <= 0.0001。

  • method:选择统计学检验的方法
alt

单因素两两比较

如果想看两两之间的差异显著性,例如“setosa”和“versicolor”,可以通过wilcox.test方法进行检验。

# 首先设置比较的列表
compare_list <- list(
    c("setosa","versicolor"),
    c("versicolor","virginica")
p <- ggplot(data,aes(x = Species,y = Sepal.Width)) +
    geom_boxplot(aes(fill = Species),alpha = 0.7)+
    geom_jitter(aes(color = Species))+
    scale_fill_manual(values = c("#f79f1f","#a3cb38","#1289a7"))+
    scale_color_manual(values = c("#f79f1f","#a3cb38","#1289a7"))+
    theme_bw()+
    theme(panel.grid = element_blank())+
    stat_compare_means(
    comparisons = compare_list,
    method = "wilcox.test",
    label = "p.signif")
)

代码中stat_compare_means函数提供统计学检验,调节参数可以转换方法和展示方式。 alt

双因素组内比较

如果引入分组信息作为另外一个因素,那么可以对每个水平内两组进行比较。

p <- ggplot(data,aes(x = Species,y = Sepal.Length,color = Group))+
    geom_boxplot(aes(fill=Group),alpha=0.5)
p
alt

箱线 + 散点

p <- ggplot(data,aes(x = Species,y = Sepal.Length,color = Group))+
    geom_boxplot(aes(fill=Group),alpha=0.5)+
    geom_jitter(position = position_jitterdodge(jitter.width = 0.5,
                                                jitter.height = 0.5,
                                                dodge.width = 0.2))+
    scale_fill_manual(values = c("#f79f1f","#a3cb38","#1289a7"))+
    scale_color_manual(values = c("#f79f1f","#a3cb38","#1289a7"))+
    theme_bw()
p
alt

position_jitterdodge函数可以调整散点图的抖动范围,scale_fill_manual用于调整填充颜色,theme_bw用于设置主题,这段代码仅作图。

统计学检验

p <- p + stat_compare_means(
    aes(group = Group),
    label = "p.format",
    show.legend = F,
    label.y = 8.5
)
p
alt

这张图x轴是不同分类,每个分类下有A和B两组,y轴表示具体的值,每个分类上有P值标注。

在实际的分析可视化过程中,还要考虑实验设计、数据分布状态等因素,合理选择检验方法,并根据目的和需求修改相应参数。

本文由 mdnice 多平台发布

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

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

相关文章

Android13 Wifi启动流程分析

Android13 Wifi启动流程分析 文章目录 Android13 Wifi启动流程分析一、正常开关wifi 启动流程1、WifiManager2、WifiServiceImpl3、ActiveModeWarden4、ConcreteClientModeManager5、WifiNative6、WifiVendorHal7、HalDeviceManager8、wifi.cpp 二、重启设备时自动开启wifi流程…

云原生之深入解析基于FunctionGraph在Serverless领域的FinOps的探索和实践

一、背景 Serverless 精确到毫秒级的按用付费模式使得用户不再需要为资源的空闲时间付费。然而&#xff0c;对于给定的某个应用函数&#xff0c;由于影响其计费成本的因素并不唯一&#xff0c;使得用户对函数运行期间的总计费进行精确的事先估计变成了一项困难的工作。以传统云…

亚马逊推出 Graviton4:具有 536.7 GBps 内存带宽的 96 核 ARM CPU

如今&#xff0c;许多云服务提供商都设计自己的芯片&#xff0c;但亚马逊网络服务 (AWS) 开始领先于竞争对手&#xff0c;目前其子公司 Annapurna Labs 开发的处理器可以与 AMD 和英特尔的处理器竞争。本周&#xff0c;AWS 推出了 Graviton4 SoC&#xff0c;这是一款基于 ARM 的…

斩获冠亚军!开源检索引擎Puck闪耀NeurIPS‘2023

近日&#xff0c;备受全球瞩目的国际向量检索大赛 Big-ANN in NeurIPS’23 的排行榜正式公布。百度搜索内容技术团队&#xff0c;以其自研 ANN 检索算法 PUCK 的出色性能表现&#xff0c;成功斩获Streaming Search赛道冠军与Filtered Search赛道亚军。 NeurIPS&#xff08;Con…

Spring项目启动,运行停留在标题处

详情&#xff1a; 原因&#xff1a; yml文件存在问题&#xff0c;比如&#xff1a;在切换生产环境和开发环境的配置文件时&#xff0c;yml名称写错&#xff0c;如下&#xff0c;图&#xff0c;此处多写了一个p。 解决办法&#xff1a; 修改为正确的配置文件&#xff0c;即可。

27、ResNet50处理STEW数据集,用于情感三分类+全备的代码

1、数据介绍 IEEE-Datasets-STEW:SIMULTANEOUS TASK EEG WORKLOAD DATASET &#xff1a; 该数据集由48名受试者的原始EEG数据组成&#xff0c;他们参加了利用SIMKAP多任务测试进行的多任务工作负荷实验。受试者在休息时的大脑活动也在测试前被记录下来&#xff0c;也包括在其…

Java 中的内部类的定义

目录 一、成员内部类 二、静态内部类 三、局部内部类 四、匿名内部类 一、成员内部类 public class InnerClass {String name;private Integer age;static String hobby;/*** 成员内部类* 1、成员内部类中只能定义非静态属性和方法* 2、成员内部类中可以访问外部类的成员&a…

【深度学习实践】换脸应用dofaker本地部署

本文介绍了dofaker换脸应用的本地部署教程&#xff0c;dofaker支持windows、linux、cpu/gpu推理&#xff0c;不依赖于任何深度学习框架&#xff0c;是一个非常好用的换脸工具。 本教程的部署系统为windows 11&#xff0c;使用CPU推理。 注意&#xff1a; 1、请确保您的所有路…

晋江IP影视化频频折戟,网文陷入工业化困境

在影视行业进入IP时代的2023年&#xff0c;晋江文学城&#xff08;以下简称晋江&#xff09;IP影视化却迎来了大溃败。 2023年&#xff0c;晋江IP在影视行业依旧十分抢手&#xff0c;多部热门网文被影视化&#xff0c;其中不乏头部视频网站的S大制作&#xff0c;但播出效果却有…

.NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式

之前写过使用自定义返回类的方式来统一接口数据返回格式&#xff0c;.Net Core webapi RestFul 统一接口数据返回格式-CSDN博客 但是这存在一个问题&#xff0c;不是所有接口会按照定义的数据格式返回&#xff0c;除非每个接口都返回我们自定义的类&#xff0c;这种实现起来不…

Mybatis-plus动态条件查询QueryWrapper的函数用法

目录 前言1. QueryWrapper2. 函数3. Demo 前言 原本都是在Mapper文件中修改&#xff0c;直到看到项目中使用了QueryWrapper这个函数&#xff0c;大致了解了用法以及功能&#xff0c;发现还可以&#xff01; 对此此贴为科普帖以及笔记帖 1. QueryWrapper MyBatis-Plus 是 My…

你知道海外云手机可以用于外贸测评吗?

目前随着外贸行业的发展&#xff0c;像亚马逊、速卖通、eBay等海外电商平台越来越火热。在这些平台&#xff0c;过硬的产品质量、优秀的服务、合适的价格&#xff0c;再加上适量的跨境电商测评&#xff0c;很容易就能吸引不少的客户。那么如何利用海外云手机进行外贸测评&#…

rk3588多模型检测部署quickrun

quickrun 是一款rk3588 rknn多模型高效高并发部署软件 软件框架 采用session思想&#xff0c;可以定义多个session满足不同模型的义务需求。比如充电桩检测&#xff0c;垃圾分类&#xff0c;悬崖检测&#xff0c;模型共用一个摄像头&#xff0c;采用yolov5的模型。 采用消息…

【C语言】动态内存管理基础知识——动态通讯录,如何实现通讯录容量的动态化

引言 动态内存管理的函数有&#xff1a;malloc,calloc,ralloc,free,本文讲解动态内存函数和使用&#xff0c;如何进行动态内存管理,实现通讯录联系人容量的动态化&#xff0c;对常见动态内存错误进行总结。 ✨ 猪巴戒&#xff1a;个人主页✨ 所属专栏&#xff1a;《C语言进阶》…

【大模型】快速体验百度智能云千帆AppBuilder搭建知识库与小助手

文章目录 前言千帆AppBuilder什么是千帆AppBuilderAppBuilder能做什么 体验千帆AppBuilderJava知识库高考作文小助手 总结 前言 前天&#xff0c;在【百度智能云智算大会】上&#xff0c;百度智能云千帆AppBuilder正式开放服务。这是一个AI原生应用开发工作台&#xff0c;可以…

业务逻辑漏洞有哪些?漏洞攻击防御及代码示例

文章目录 简介危害成因攻击防御代码示例1. 未经验证的重要操作2. 认证绕过3. 逻辑时间窗口漏洞4. 负载测试漏洞 修复 业务逻辑漏洞是指软件或系统的逻辑设计上的缺陷&#xff0c;这些缺陷可能被攻击者利用&#xff0c;从而导致意料之外的行为。下面是对业务逻辑漏洞的简介、危害…

大数据技术基本功-数据采集

产品指南&#xff5c;DataScale自定义采集器功能介绍产品指南&#xff5c;开发 DataScale Collector​​​​​​​

ubuntu换源

1 首先备份Ubuntu源列表 sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup 2 查看自己Ubuntu版本 命令 lsb_release -a precise为源里面的关键字,根据实际情况,自行修改 3 修改更新源 先删除原文件里面的内容 sudo gedit /etc/apt/sources.list 用下面内容替…

哈希表..

文章目录 1. 两数之和-力扣 1 题 1. 两数之和-力扣 1 题 思路&#xff1a; 循环遍历数组&#xff0c;拿到每个数字x以target-x作为key到map中查找 若没找到&#xff0c;将x 作为key&#xff0c;它的索引作为value 存入map 若找到了&#xff0c;返回 x 和它配对数的索引即可 …

【让云服务器更灵活】iptables转发tcp/udp端口请求

iptables转发tcp/udp端口请求 文章目录 前言一、路由转发涉及点二、转发如何配置本机端口转发到本机其它端口本机端口转发到其它机器 三、固化iptables总结 前言 路由转发是计算机网络中的一种重要概念&#xff0c;特别是在网络设备和系统之间。它涉及到如何处理和传递数据包&…