大数跨境
0
0

ggplot2绘制箱线图的完美小案例

ggplot2绘制箱线图的完美小案例 R语言数据分析指南
2022-10-05
1

本节来复现「nature microbiology」上的一张「箱线图」,小编在绘图代码中加入了一些新的数据处理方式,感兴趣的观众老爷细细品味,下面来进行具体介绍,「数据代码已经上传VIP交流群」

有需要学习数据可视化的朋友欢迎加入小编2022年度VIP群,目前群内已经上传公众号文档「数据+代码约200篇」VIP交流群(1)已经500人满员,随着内容不断增多,为了更好的创做内容现在进群需「付费149元」,若转发此文档到朋友圈集赞20个可优惠20元,早进早享受;加入小编的VIP如果你有一些让我感兴趣的图表提供示例数据小编若有时间会写成推文发送

加载R包

library(tidyverse)
library(ggpubr)
library(magrittr)
library(ggsci)
library(ggsignif)

导入数据

df <- read_tsv("data.txt") %>% slice(.,-1)

构建文本

text <- df %>% filter(sample !="Geometric mean") %>% column_to_rownames(var="sample") %>% 
  log10() %>% 
  summarise_if(is.numeric, max) %>% 
  rownames_to_column(var="sample") %>% 
  pivot_longer(-sample) %>% select(-1) %>% 
  left_join(.,df %>% filter(sample =="Geometric mean") %>% 
              pivot_longer(-sample) %>% select(-1),by="name") %>% 
  set_colnames(c("name","value","num")) %>% 
  mutate(num=round(num,digits = 1))

数据清洗

df2 <- df %>% filter(sample !="Geometric mean") %>% column_to_rownames(var="sample") %>% 
  log10() %>% 
  rownames_to_column(var="sample") %>% 
  pivot_longer(-sample)

定义因子

df2$name <- factor(df2$name,levels = colnames(df) %>% as.data.frame() %>% slice(.,-1) %>% pull())

数据可视化

df2 %>% ggplot(aes(name,value)) +
  stat_boxplot(geom="errorbar",position=position_dodge(width=0.2),width=0.1)+
  geom_boxplot(position=position_dodge(width =0.2),width=0.4)+
  geom_point(aes(fill=name,group=sample,color=name),pch=21,
             position = position_dodge(0.2))+
  geom_text(data=text,aes(label=num,y=value+0.1),size=4,color="black",hjust=0.5,vjust=0.5)+
  geom_signif(comparisons = list(c("SARS-CoV-2 Beta","SARS-CoV-2 Omicron BA.1")),
              map_signif_level=T,
              textsize=6,test=wilcox.test,step_increase=0.2)+
  scale_size_continuous(range=c(1,3))+
  stat_cor(label.y = 4,aes(label = paste(..rr.label.., ..p.label.., sep = "~`,`~"),group=1),color="black",
           label.x.npc="middle")+
  stat_regline_equation(label.y = 3.75,aes(group=1),color="black",label.x.npc = "middle")+
  scale_fill_simpsons(alpha=0.7)+
  scale_color_simpsons(alpha=0.7)+
  labs(x=NULL,y=NULL)+
  theme(plot.margin=unit(c(0.5,0.5,0.5,0.5),units=,"cm"),
        axis.line = element_line(color = "black",size = 0.4),
        panel.grid.minor = element_blank(),
        panel.grid.major = element_line(size = 0.2,color = "#e5e5e5"),
        panel.background = element_blank(),
        axis.text.y = element_text(color="black",size=10,face="bold"),
        axis.text.x = element_text(color="black",size=10,vjust=0.5,hjust = 1,
                                   face="bold",angle = 90),
        axis.line.x.top  = element_line(color="black"), 
        axis.text.x.top = element_blank(),
        axis.ticks.y.right=element_blank(),
        axis.text.y.right = element_blank(),
        axis.ticks.x.top=element_blank(),
        panel.spacing.x = unit(0,"cm"),
        panel.border = element_blank(),
        legend.position = "none",
        panel.spacing = unit(0,"lines")
  )+guides(x.sec="axis",y.sec = "axis")

本节介绍到此结束,可以看到主要还是数据处理步骤,喜欢的观众老爷欢迎分享转发;「当然更推荐大家加入我的VIP交流群」扫描下方二维码加小编微信「付费149元」后邀请进群,「一定让你感受到物超所值」「添加小编微信请备注来意,以便高效处理」

小编微信

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


往期推荐

ggplot2对堆砌条形图添加误差线

[会员专享] ggplot2绘制多层注释散点图

ggplot2优雅的绘制3D热图

在R中优雅的处理压缩文件

[会员专享] 跟着GCB学绘图-高端系统发育树

ggplot2优雅的对图形做各种额外注释

十一黄金周正是学习时-加入R绘图交流群早日提高数据分析技能!

[GBD数据库挖掘] 9.ggplot2绘制ASIR地图

ggplot2优雅的可视化配对三线表

[GBD数据库挖掘] 8.ggplot绘制不同年份发病率哑铃图

[会员专享] ggplot2另类绘制分面条形图

[会员专享] ggplot2构建回归模型热图

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