R语言ggpubr包优雅绘制带统计数据的箱线图

2023-09-18 14:01:24

ggpubr包是个很经典的R包,能绘制专业的论文绘图,它是对ggplot2进行了加强,R包的说明也是介绍用于创建和自定义基于“ggplot2”的出版物绘图,就是个为SCI而生的R包呀,今天咱们使用ggpubr绘制专业的论文需要的带统计数据的箱线图
下面咱们开始,先导入R包和数据,使用R软件自带的ToothGrowth数据

library(ggpubr)
data("ToothGrowth")
df <- ToothGrowth

在这里插入图片描述
这是R软件自带的数据,描述维生素C对豚鼠牙齿生长的影响,结果是60只豚鼠的成牙本质细胞(负责牙齿生长的细胞)的长度。每只动物通过两种递送方法之一,即橙汁或抗坏血酸(维生素C的一种形式,编码为VC),接受三种剂量水平的维生素C(0.5、1和2 mg/天)中的一种。
Len:牙齿长度,supp干预方式,有维生素C或者抗坏血栓2种(VC or OJ)。Dose:药物的剂量。
绘制箱线图的函数是ggboxplot函数,咱们先来绘制个基础箱线图,x是类别,如果是数字的话要转成因子。Y是牙齿长度,需要是连续变量。

p <- ggboxplot(data=ToothGrowth, x = "supp", y = "len",
               color = "supp", palette = "npg", add = "jitter")
p

在这里插入图片描述
palette是调色板,看你需要那中风格,有"npg", “aaas”, “lancet”, “jco”, “ucscgb”, “uchicago”, “simpsons” and “rickandmorty”.可选。咱们换个风格看看

p <- ggboxplot(data=ToothGrowth, x = "supp", y = "len",
               color = "supp", palette = "ucscgb", add = "jitter")
p

在这里插入图片描述
add = "jitter"是加上散点,我们不加试一下

p <- ggboxplot(data=ToothGrowth, x = "supp", y = "len",
               color = "supp", palette = "ucscgb")
p

在这里插入图片描述
ggpubr包的优点是可以计算相关数据的统计值,并且优美的展现出来,下面咱们来演示一下,给它添加一个P值

p + stat_compare_means()

在这里插入图片描述
默认的是Wilcoxon秩和检验,假如我们想换成T检验

p + stat_compare_means(method = "t.test")

在这里插入图片描述
假如咱们想对两个数据进行配对比较

ggpaired(ToothGrowth, x = "supp", y = "len",
         color = "supp", line.color = "gray", line.size = 0.4,
         palette = "ucscgb")+
  stat_compare_means(paired = TRUE)

在这里插入图片描述
假如咱们想进行更多的组别比较,比如说对不同的计量进行比较,先要进行设定要比较的组,这里设定0.5,1,2这3个组比较

my_comparisons <- list( c("0.5", "1"), c("1", "2"), c("0.5", "2") )

绘图

ggboxplot(ToothGrowth, x = "dose", y = "len",
          color = "dose", palette = "npg")+
  stat_compare_means(comparisons = my_comparisons, label.y = c(29, 35, 40))+
  stat_compare_means(label.y = 45) 

在这里插入图片描述
假如咱们设置0.5这组为参考组,其他组和它进行比较,这里使用了anova的方法

# Multiple pairwise test against a reference group
ggboxplot(ToothGrowth, x = "dose", y = "len",
          color = "dose", palette = "npg")+
  stat_compare_means(method = "anova", label.y = 40)+ # Add global p-value
  stat_compare_means(aes(label = after_stat(p.signif)),
                     method = "t.test", ref.group = "0.5")

在这里插入图片描述
也可以进行亚组数据中相关类别的比较,非常实用。这里选择的是药物dose的剂量为分组

p <- ggboxplot(ToothGrowth, x = "supp", y = "len",
               color = "supp", palette = "npg",
               add = "jitter",
               facet.by = "dose", short.panel.labs = FALSE)
p

在这里插入图片描述
也可以求出每组的P值

p + stat_compare_means(
  aes(label = paste0("p = ", after_stat(p.format)))
)

在这里插入图片描述
表明在不同剂量下。不同药物对老鼠的牙齿影响有区别。

最后总结一下,这个是个非常使用的R包,有非常多的使用绘图函数。

更多推荐

Python中的函数未定义的错误

前言:嗨喽~大家好呀,这里是魔王呐❤~!python更多源码/资料/解答/教程等点击此处跳转文末名片免费获取通过这个解释,我们将了解当Python程序显示类似NameError:name‘’isnotdefined的错误时,即使该函数存在于脚本中,也会出现这种情况。我们还学习了当我们使用拼写错误的变量或没有导入的内置函

Zookeeper集群 + Kafka集群

目录1、Zookeeper1.1Zookeeper概述1.1.1Zookeeper定义1.1.2Zookeeper工作机制1.1.3Zookeeper特点1.1.4Zookeeper数据结构1.1.5Zookeeper应用场景1.2Zookeeper选举机制1.3部署Zookeeper集群1.3.1安装前准备1.3.2

肖sir___环境的讲解详情__002

一、环境讲解1、jdk什么是JDK?JDK的作用?JDK是java语言的软件开发工具包,能解释java程序,编译java语言,没有jdk的话无法编译Java程序。包含了各种类库和工具,机器不是直接识别语言的,会借助工具的编译器,可以理解为翻译官,将一门语言翻译为机器可以识别的语言,Jdk能对Java进行编译,我们的工具

人机合作的有效性、安全性和可信度

确定人机协同中权力归属的原则和方法可以根据具体情境和任务的要求进行灵活选择。以下是一些常见的方法:专业领域授权:在专业领域中,权力可能更多地授予具有相关知识和经验的人类专家。他们能够理解和分析复杂的情况,并基于其专业判断做出决策。机器可以作为工具或辅助手段,提供数据分析、模型预测等支持。分工合作:根据任务的不同阶段或特

java版Spring Cloud+Mybatis+Oauth2+分布式+微服务+实现工程管理系统

鸿鹄工程项目管理系统SpringCloud+SpringBoot+Mybatis+Vue+ElementUI+前后端分离构建工程项目管理系统1.项目背景一、随着公司的快速发展,企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性,公司对内部工程管理的提升提出了更高的要求。二、企业通过

【JavaScript】video标签配置及相关事件:

文章目录一、标签配置:二、事件:三、案例:一、标签配置:标签名描述src要播放的路径地址autoplay是否自动播放,默认值是false,(Boolean)loop是否循环播放,默认值是false,(Boolean)muted是否静音播放,默认值是false,(Boolean)initial-time制定和视频初始播放

线性代数的本质(八)——内积空间

文章目录内积空间内积空间正交矩阵与正交变换正交投影施密特正交化实对称矩阵的对角化内积空间内积空间三维几何空间是线性空间的一个重要例子,如果分析一下三维几何空间,我们就会发现它还具有一般线性空间不具备的重要性质:三维几何空间中向量有长度和夹角,这称为三维几何空间的度量性质。现在,我们在一般线性空间中引入度量有关的概念。我

【面试刷题】——Qt使用的编译器

Qt可以使用多种不同的编译器,具体取决于你的开发环境和目标平台。以下是一些常见的Qt支持的编译器:MinGW:MinGW(MinimalistGNUforWindows)是Windows下的一个轻量级开发工具集,通常与Qt一起使用来开发Windows应用程序。Qt的官方发行版通常包括了MinGW编译器,以便在Windo

关于Qt适配不同分辨率和缩放率时可能遇到的问题和解决方案

如果没有特殊的处理,Qt的UI窗口在不同的分辨率和缩放率下,其显示效果可能会出现问题,常见的有:子控件堆叠,无法显示完整窗口尺寸变大,超出屏幕的显示范围控件变形,长宽比不合理界面模糊字体变大,控件尺寸却没有变化有两种方式可以对UI界面进行良好的缩放:Qt不做任何事情,由windows系统负责缩放windows系统不做任

Qt5开发及实例V2.0-第一章Qt概述及Qt5的安装

Qt5开发及实例V2.0-第一章-Qt概述及Qt5的安装第一章-Qt概述1.1什么是Qt1.2Qt5的安装1.2.1下载安装Qt51.2.2运行Qt5Creator1.2.3Qt5开发环境1.3Qt5开发步骤及实例1.3.1设计器Qt5Designer实现1.3.2代码实现简单实例L1.2Qt5安装:概念解析L1.3Q

kafka 3.5 生产者请求中的acks,在服务端如何处理源码

一、生产者客户端配置参数acks说明1、acks=12、acks=03、acks=-1二、请求在写入Leader的数据管道之前,则会验证Leader的ISR副本数量和配置中的最小ISR数量1、Leader的ISR小于配置文件中minInSyncReplicas,并且acks=-1,则抛异常2、如果acks不等于-1,则

热文推荐