前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R初学者必知图形添加显著性标记小细节

R初学者必知图形添加显著性标记小细节

作者头像
R语言数据分析指南
发布2022-12-20 19:50:28
1.1K0
发布2022-12-20 19:50:28
举报

❝本节来介绍如何对图形做显著性标记,介绍两种方法第一种通过代码来自动进行标记,另一种通过手动的方式来添加标记;两种方法各有其独特的用处,各位观众老爷细细品味。

加载R包

代码语言:javascript
复制
library(tidyverse)
library(readxl)
library(ggsignif)
library(rstatix)
library(ggpubr)
library(ggsci)

统计分析

代码语言:javascript
复制
stat.test <- read_excel("41588_2022_1184_MOESM6_ESM.xlsx",sheet = 3) %>% 
  mutate(value=as.numeric(DTT)) %>% 
  drop_na() %>% 
  group_by(Loc) %>% 
  t_test(value ~ Type) %>%
  adjust_pvalue() %>% add_significance("p.adj") %>% 
  add_xy_position(x="Loc",scales="free",fun = "max")

添加显子性标记

代码语言:javascript
复制
read_excel("41588_2022_1184_MOESM6_ESM.xlsx",sheet = 3) %>% 
  mutate(value=as.numeric(DTT)) %>% 
  drop_na() %>% 
  ggplot(.,aes(Loc,value))+
  stat_summary(geom = "bar",position = "dodge",aes(fill=Type),width=0.4) +
  stat_pvalue_manual(stat.test,label = "p.adj.signif",label.size=5,hide.ns = T,
                     tip.length = 0.01)+
  stat_summary(geom = "errorbar",fun.data = "mean_sdl",
               fun.args = list(mult = 1),aes(fill=Type),
               position=position_dodge(0.4),width=0.2,color="black") +
  labs(x=NULL,y=NULL)+
  scale_fill_jama()+
  theme_test()+
  theme(legend.position = "top",
        legend.title = element_blank())

❝上述图形是通过代码自动判定了显著性的位置信息进而进行添加,如果数据分组较为复杂并且存在分面操作的情况;那么需要对上述代码的位置信息做过多的调整,因此第一种方法对初学者不太友好;接下来介绍如何使用「ggsignif」包来手动添加显著性标记 ❞

构建数据

代码语言:javascript
复制
dataf<- data.frame(Group<- c("G1","G1","G2","G2"),
                   Subject<- c("A","B","A","B"),
                   Score<- c(5,7,20,25))

案例一

代码语言:javascript
复制
ggplot(dataf, aes(Group,Score))+
  geom_bar(aes(fill = Subject), stat = "identity", 
           position = "dodge", width = .5)+
  geom_signif(y_position = c(10,26), xmin = c(0.8,1.8), 
              xmax = c(1.2,2.2), annotation = c("NS","**"),
              tip_length = 0)+
  geom_signif(comparisons = list(c("G1","G2")), y_position = 30,
              tip_length = 0, vjust = .1)+
  theme_light(base_size=10)

❝可以看到非常直观,简单明了但是此种方法只适用于数据量较小的情况 ❞

案例二

代码语言:javascript
复制
ggplot(dataf, aes(Group,Score))+
  geom_bar(aes(fill = Subject), stat = "identity", 
           position = "dodge", width = .5)+
  geom_signif(y_position = c(7.3,25.3), xmin = c(0.8,1.8), 
              xmax = c(1.2,2.2), annotation = c("Annotation","How i want it"),
              tip_length = 0)+
  geom_signif(comparisons = list(c("G1","G2")), y_position = 28,
              tip_length = 0, vjust = .1)+
  theme_light(base_size=13)

annotation参数还可以使用文本来进行注释

案例三

❝此外geom_signif还支持tip_length参数控制每一条竖线的的长度,的确很是贴心 ❞

代码语言:javascript
复制
ggplot(dataf, aes(Group,Score))+
  geom_bar(aes(fill = Subject), stat = "identity", 
           position = "dodge", width = .5)+
  geom_signif(y_position = c(7.3,25.3), xmin = c(0.8,1.8), 
              xmax = c(1.2,2.2), annotation = c("NS","**"),
              tip_length = 0.01)+
  geom_signif(comparisons = list(c("G1","G2")), y_position = 28,
              tip_length = c(1,0.1), vjust = .1)+
  theme_light(base_size=13)

本节介绍到此结束

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-11-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 R语言数据分析指南 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ❝本节来介绍如何对图形做显著性标记,介绍两种方法第一种通过代码来自动进行标记,另一种通过手动的方式来添加标记;两种方法各有其独特的用处,各位观众老爷细细品味。
  • 加载R包
  • 统计分析
  • 添加显子性标记
  • 构建数据
  • 案例一
  • 案例二
  • 案例三
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档