前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >ggplot2优雅绘制多元素箱线图

ggplot2优雅绘制多元素箱线图

作者头像
R语言数据分析指南
发布于 2024-03-20 13:21:38
发布于 2024-03-20 13:21:38
17900
代码可运行
举报
运行总次数:0
代码可运行

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

案例图

仿图

绘图思路

❝此图归类于簇状箱线图,图中叠加元素主要有阴影背景条带、p值、显著性条带、图例文本颜色、图例位置等,细节繁多需要调整多个参数 ❞

关于永久群内容的说明

❝给予长期支持我们的读者们一个特别待遇:购买小编VIP会员文档的读者,「将自动获得2024年及以后更新的绘图文档代码,无需额外付费」。目前会员文档(2023+2024)「已经更新上传了140+案例文档」,每个案例都附有相应的数据和代码,并配有对应的注释文档,方便大家学习和参考。 ❞

加载R包

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
install.packages("ggplot2")
library(tidyverse)
library(rstatix)
library(GGally)
library(ggtext)

数据清洗

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df <- read_tsv("diff_GeneExp.txt") %>% 
  pivot_longer(-ID) %>% 
  mutate(type=map_chr(name, ~str_split(.x, "_")[[1]][length(str_split(.x, "_")[[1]])]))

统计分析

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df_pvalue <- df %>% group_by(ID) %>%
  wilcox_test(value ~type) %>%
  adjust_pvalue(p.col = "p", method = "bonferroni") %>%
  add_significance(p.col = "p.adj") %>% 
  select(ID,p.adj)

数据整合

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dff <- df %>% left_join(.,df_pvalue,by="ID") %>% 
  mutate(group=case_when(p.adj < 0.00001 ~ "Upregulated",
         TRUE ~ "NS")) %>% 
  mutate(p.adj=paste("p=",p.adj,sep=""))

数据可视化

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dff %>% ggplot(aes(value,ID))+
  geom_stripped_rows(odd="grey90",xfrom =-0.5, xto =9.5)+
  geom_boxplot(aes(color=type),position = position_dodge(0.5),
               width=0.5,outliers = FALSE)+
  geom_text(data=dff %>% select(1,p.adj) %>% distinct(),
            aes(x=8.2,y=ID,label=p.adj),size=3,color="black")+
  scale_x_continuous(limits = c(0,10),breaks = c(2,4,6,8))+
  scale_y_discrete(expand =c(0,0.5))+
  scale_fill_manual(values =c("Upregulated"="#7294D4","NS"="grey"))+
  labs(x=NULL,y=NULL)+
  theme_classic()+
  theme(plot.margin=unit(c(0.5,0.5,0.5,0.5),unit="cm"),
        legend.justification.top = "left",
        legend.text = element_markdown(),
        legend.background = element_blank(),
        axis.line.x.bottom = element_blank(),
        axis.text=element_text(color="black"))
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-03-15,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 欢迎关注R语言数据分析指南
  • 案例图
  • 仿图
  • 绘图思路
  • 关于永久群内容的说明
  • 加载R包
  • 数据清洗
  • 统计分析
  • 数据整合
  • 数据可视化
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档