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

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

下面咱们开始,先导入R包和数据,使用R软件自带的ToothGrowth数据

r 复制代码
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是牙齿长度,需要是连续变量。

r 复制代码
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".可选。咱们换个风格看看

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

add = "jitter"是加上散点,我们不加试一下

r 复制代码
p <- ggboxplot(data=ToothGrowth, x = "supp", y = "len",
               color = "supp", palette = "ucscgb")
p

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

r 复制代码
p + stat_compare_means()

默认的是Wilcoxon秩和检验,假如我们想换成T检验

r 复制代码
p + stat_compare_means(method = "t.test")

假如咱们想对两个数据进行配对比较

r 复制代码
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个组比较

r 复制代码
my_comparisons <- list( c("0.5", "1"), c("1", "2"), c("0.5", "2") )

绘图

r 复制代码
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的方法

r 复制代码
# 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的剂量为分组

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

也可以求出每组的P值

r 复制代码
p + stat_compare_means(
  aes(label = paste0("p = ", after_stat(p.format)))
)

表明在不同剂量下。不同药物对老鼠的牙齿影响有区别。

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

相关推荐
喵了meme7 小时前
C语言实战4
c语言·开发语言
码界奇点7 小时前
Python从0到100一站式学习路线图与实战指南
开发语言·python·学习·青少年编程·贴图
9ilk7 小时前
【C++】--- 特殊类设计
开发语言·c++·后端
sali-tec8 小时前
C# 基于halcon的视觉工作流-章68 深度学习-对象检测
开发语言·算法·计算机视觉·重构·c#
生骨大头菜10 小时前
使用python实现相似图片搜索功能,并接入springcloud
开发语言·python·spring cloud·微服务
绝不收费—免费看不了了联系我10 小时前
Fastapi的单进程响应问题 和 解决方法
开发语言·后端·python·fastapi
消失的旧时光-194310 小时前
深入理解 Java 线程池(二):ThreadPoolExecutor 执行流程 + 运行状态 + ctl 原理全解析
java·开发语言
咖啡续命又一天10 小时前
Trae CN IDE 中 Python 开发的具体流程和配置总结
开发语言·ide·python·ai编程
4311媒体网10 小时前
帝国cms调用文章内容 二开基本操作
java·开发语言·php
GSDjisidi10 小时前
东京IT软件会社-(株)GSD|多种技术栈募集,高度人才+20分
开发语言·面试·职场和发展