问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

ggplot2/ggpubr包:绘制配对箱线图、配对小提琴图和配对点图

创作时间:
作者:
@小白创作中心

ggplot2/ggpubr包:绘制配对箱线图、配对小提琴图和配对点图

引用
CSDN
1.
https://blog.csdn.net/a852232394/article/details/139298801

本文将介绍如何使用R语言ggplot2包和ggpubr包绘制分组/分面配对图的方法。配对图最大的优点在于可以展示相同样本处理前后对应关系。文章将通过具体的数据集,演示如何绘制配对箱线图、配对小提琴图和配对点图。


图1:配对图示例(图片来源:Nat Commun:Clinical practices underlie COVID-19 patient respiratory microbiome composition and its interactions with the host)

数据加载

首先,我们需要加载必要的R包并读取数据。数据信息包括ID(TCGA的barcode)、Group(肿瘤与对照样本)、paired(配对的barcode信息)和Expression(目标基因的表达量)。

rm(list=ls())
pacman::p_load(tidyverse,reshape2,ggpubr)

# 实战
data <- read.csv('data.csv')
head(data)

ggpubr包简单示例

使用ggpubr包绘制配对图的基本示例:

# ggpubr绘图示例
ggpaired(ToothGrowth,   
         x = "supp",   
         y = "len",  
         color = "supp",   
         line.color = "gray",   
         line.size = 0.4,  
         palette = "jco") +  
  stat_compare_means(paired = TRUE)


图2:ggpubr包绘制的配对图示例

ggpubr包绘制配对箱线图

使用ggpubr包绘制配对箱线图:

ggpaired(data, x = "Group", y = "Expression", color = "black", fill = "Group", line.size = 0.5) +  
  geom_line(aes(group = paired), color = "grey80") +  
  stat_compare_means(paired = TRUE, size = 2) +  
  facet_wrap(~ Type, scales = 'free_x', nrow = 2) +  
  ggsci::scale_fill_npg() +  
  ggsci::scale_color_npg() +  
  theme_classic2(base_size = 9) +  
  xlab('Expression')  
ggsave('pic1.png', width = 10, height = 4)


图3:使用ggpubr包绘制的配对箱线图

ggplot2绘制配对箱线图

使用ggplot2包绘制配对箱线图,并优化分面绘图主题:

facet_theme <- theme(strip.background = element_blank(),  
                     panel.spacing.x  = unit(0, "cm"), #x轴分面距离  
                     panel.spacing.y  = unit(0, "cm"),#y轴分面距离  
                     strip.text.x = element_text(size=7),  
                     strip.text.y = element_text(size=7, face="bold"),  
                     axis.text.x=element_text(angle=45,vjust=1, hjust=1),  
                     legend.position = 'none')  

ggplot(data, aes(x = Group, y = Expression, color = Group)) +  
  geom_boxplot(outlier.size = 0.5) +  
  geom_line(aes(group = paired), color = "grey80", size = 0.5) +  
  geom_point(size = 0.5) +  
  stat_compare_means(comparisons = list(c("tumor", "normal")),   
                     paired = T, size = 2,label = "p.format",tip.length = 0) +  
  facet_wrap(~ Type, scales = 'free_y', nrow = 2) +  
  ggsci::scale_color_npg() +  
  theme_classic2(base_size = 9) +  
  facet_theme +  
  xlab('Expression')  
ggsave('pic2.png', width = 10, height = 4)


图4:使用ggplot2包绘制的配对箱线图

配对小提琴图

使用ggplot2包绘制配对小提琴图:

ggplot(data, aes(x = Group, y = Expression, color = Group)) +  
  geom_violin(size = 1) +  
  geom_line(aes(group = paired), color = "grey80", size = 0.5) +  
  geom_point(size = 0.5, color = 'black') +  
  stat_compare_means(comparisons = list(c("tumor", "normal")),   
                     paired = T, size = 2,label = "p.format",tip.length = 0) +  
  facet_wrap(~ Type, scales = 'free_y', nrow = 2) +  
  ggsci::scale_color_npg() +  
  theme_classic2(base_size = 9) +  
  facet_theme +  
  xlab('Expression')  
ggsave('pic3.png', width = 10, height = 4)


图5:配对小提琴图

配对点图

使用ggplot2包绘制配对点图:

ggplot(data, aes(x = Group, y = Expression, fill = Group, color = Group)) +  
  geom_line(aes(group = paired), color = "grey80", size = 0.5) +  
  geom_point(size = 1) +  
  stat_compare_means(comparisons = list(c("tumor", "normal")),   
                     paired = T, size = 2,label = "p.signif",tip.length = 0) +  
  facet_wrap(~ Type, scales = 'free_y', nrow = 2) +  
  scale_color_manual(values = c('red', 'black')) +  
  theme_classic2(base_size = 12) +  
  facet_theme  
ggsave('pic4.png', width = 10, height = 4)


图6:配对点图

分组差异展示方式

  • ns: p > 0.05
  • *: p <= 0.05
  • **: p <= 0.01
  • ***: p <= 0.001
  • ****: p <= 0.0001
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号