大数跨境
0
0

Nature图表复现|方差分析误差线图

Nature图表复现|方差分析误差线图 R语言数据分析指南
2023-09-21
1

欢迎关注R语言数据分析指南

本节来复现「nature communications」中的一张论文图,「进行单向方差分析并做数据可视化」。由于作者为提供原始数据,因此结果会有所不同。下面小编通过一个案例来进行展示,图形仅供展示用过程仅参考,希望各位观众老爷能够喜欢。数据代码已经整合上传到2023VIP交流群,加群的观众老爷可自行下载,有需要的朋友可关注文末介绍加入VIP交流群

关注下方公众号下回更新不迷路

论文

论文原图

加载R包

library(tidyverse)
library(ggtext)
library(ggprism)
library(ggsignif)
library(rstatix)
library(ggpubr)

导入数据

df <- read_tsv("data.txt") %>% pivot_longer(-Type) %>% 
  dplyr::filter(Type=="Day 5") %>% select(-Type)

方差分析

result.aov <- aov(value ~ name, data = df)
result.tukey <- TukeyHSD(result.aov)

# 转换p值
aov_pvalue <- result.tukey$name %>% as.data.frame() %>% 
  rownames_to_column(var="group") %>% 
  dplyr::select(1,`p adj`) %>% 
  separate(`group`, into=c("group2""group1"), sep="CAR T-", convert = TRUE) %>% 
  mutate(group1=str_replace_all(`group1`, "CAR T","")) %>% 
  select(2,1,3) %>% 
  select(-1,-2) %>% 
  mutate(p_signif=symnum(`p adj`, corr = FALSE, na = FALSE,  
                         cutpoints = c(00.010.05,1), 
                         symbols = c("**""*""ns")))

构建显著性标记文件

在此先使用rstatix包内置的wilcox_test函数来进行统计分析得到显著性的位置信息,之后将方差分析的结果合并这样方便后期使用函数自动添加显著性标记。

df_pvalue <- df %>% 
  mutate(`name`=str_replace_all(`name`, "CAR T","")) %>% 
  mutate(name=str_trim(name)) %>% 
  wilcox_test(value ~ name) %>% 
  add_significance(p.col="p.adj") %>% 
  add_xy_position(x="name") %>% select(-p.adj) %>% 
  bind_cols(aov_pvalue)

数据可视化

df %>%
  mutate(`name`=str_replace(`name`, "CAR T","")) %>% 
  ggplot(aes(name,value))+
  stat_summary(fun = mean,geom = "errorbar", width=.2,
               fun.max = function(x) mean(x) + sd(x),
               fun.min = function(x) mean(x) - sd(x)) +
  stat_summary(fun = mean, geom = "crossbar",width = 0.4,color = "black",size=0.5) +
  geom_jitter(aes(fill=name,color=name,shape=name),width = 0.1, height = 0)+
  stat_pvalue_manual(df_pvalue,label="p_signif",label.size=5,hide.ns=T)+
  scale_shape_manual(values = c(21,22,23,24)) +
  scale_fill_manual(values=c("#679289","#ee2e31","#c9cba3","#f4c095"))+
  scale_color_manual(values=c("#679289","#ee2e31","#c9cba3","#f4c095"))+
  scale_y_continuous(guide = "prism_minor",
                     limits = c(040),
                     expand = c(00))+
  labs(x=NULL,y="CAR T cells x (10<sup>3</sup>/g)")+
  theme_prism()+
  theme(strip.background = element_blank(),
        legend.background = element_rect(color=NA),
        legend.key = element_blank(),
        legend.spacing.x = unit(-0.09,"in"),
        legend.spacing.y = unit(-0.09,"in"),
        legend.text = element_text(color="black",size=6,face="bold"),
        legend.position = "top",
        axis.text.x=element_blank(),
        axis.text.y=element_text(color="black",size=8),
        axis.title.y = element_markdown(color="black",face="bold",size=10),
        axis.ticks.x = element_blank())+
  guides(shape = guide_legend(override.aes = list(size=3),
                              direction = "horizontal",
                              nrow=3, byrow=TRUE))

本节内容介绍到此结束,过程仅供参考;有需要学习个性化数据可视化的朋友,欢迎到小编的「淘宝店铺」 「R语言数据分析指南」购买「2023年度会员文档」同步更新中「售价149元」,内容主要包括各种「高分论文的图表分析复现以及一些个性化图表的绘制」均包含数据+代码;按照往年数据小编年产出约在150+以上

购买后微信发小编订单截图即邀请进新的会员交流群,小编的文档为按年售卖,只包含当年度的「除系列课程外」的文档,有需要往年文档的朋友也可下单购买,需要了解更多信息的朋友欢迎交流咨询。

淘宝扫一扫

2023会员群案例展示


【声明】内容源于网络
0
0
R语言数据分析指南
R语言重症爱好者,喜欢绘制各种精美的图表,喜欢的小伙伴可以关注我,跟我一起学习
内容 1180
粉丝 0
R语言数据分析指南 R语言重症爱好者,喜欢绘制各种精美的图表,喜欢的小伙伴可以关注我,跟我一起学习
总阅读222
粉丝0
内容1.2k