数据可视化丨优雅的绘制带显著性标记的箱线散点图,主要使用ggsignif和ggplot2

简介: 数据可视化丨优雅的绘制带显著性标记的箱线散点图,主要使用ggsignif和ggplot2

显著性标记箱线散点图

本篇笔记的内容是在R语言中利用ggplot2,ggsignif,ggsci,ggpubr等包制作箱线散点图,并计算指定变量之间的显著性水平,对不同分组进行特异性标记,最终效果如下。

加载R包

library(ggplot2)
library(ggsignif)
library(ggsci)
library(ggpubr)

载入示例数据

本次使用R语言自带的数据集mpg进行演示,内含不同汽车的相关数据指标。

df <- mpg
head(mpg)

进行绘图

ggplot(df,aes(class,hwy))+
  geom_boxplot(aes(fill=class))

首先绘制出一张普通的箱线图,填充颜色与车型分类class变量有关,然后在其基础上添加图层。下面检测compact\~pickupsubcompact\~suv的相关性,采用t测验,标注信息与横线距离0.1,两端竖线距离0.05

ggplot(df,aes(class,hwy))+
  geom_boxplot(aes(fill=class))+
  geom_signif(
    comparisons = list(
    c("compact","pickup"),
    c("subcompact","suv")
    ), #检测两者之间的差异显著性
    map_signif_level = T, #添加星号标记
    test = "t.test", #检测方法
    vjust=0.1, #标注和横线的距离
    tip_length = 0.05 #两端短竖线的长度
  )

现在可以从图中看出显著性检验的结果,如果想显示p值,只需要将map_signif_level改为F即可,接下来对图片添加注释信息。

ggplot(df,aes(class,hwy))+
  geom_boxplot(aes(fill=class))+
  geom_signif(
    comparisons = list(
    c("compact","pickup"),
    c("subcompact","suv")
    ), #检测两者之间的差异显著性
    map_signif_level = T, #添加星号标记
    test = "t.test", #检测方法
    vjust=0.1, #标注和横线的距离
    tip_length = 0.05 #两端短竖线的长度
  )+
  geom_signif(
    annotations = c("one","two"), #添加注释
    y_position = c(40,42),xmin = c(2,1),xmax = c(5,3) #添加的位置
  )

添加位置信息使用annotations参数,设置信息后利用位置参数进行标注。添加散点图的图层,设置点的颜色和位置,更改箱线图的透明度为70%,最后,再对结果进行主题修改和美化,最终呈现如下效果:

ggplot(df,aes(class,hwy))+
  geom_point(aes(color = class),position = "jitter")+
  geom_boxplot(aes(fill=class),alpha=0.7)+
  geom_signif(
    comparisons = list(
    c("compact","pickup"),
    c("subcompact","suv")
    ), #检测两者之间的差异显著性
    map_signif_level = T, #添加星号标记
    test = "t.test", #检测方法
    vjust=0.1, #标注和横线的距离
    tip_length = 0.05 #两端短竖线的长度
  )+
  geom_signif(
    annotations = c("one","two"), #添加注释
    y_position = c(40,42),xmin = c(2,2),xmax = c(5,3) #添加的位置
  )+
  scale_y_continuous(limits = c(10,48))+
  theme_bw()+
  theme(
    legend.position = "none",
    axis.title = element_text(size = 15,face = "bold"),
    axis.text.x = element_text(size = 12,hjust = 1,angle = 45,color = "black"),
    axis.title.y = element_text(size = 12,color = "black"))

各组显著性比较

载入数据

仍然使用mpg数据集,不过需要注意的是,将class变量变为因子型,因为这样可以在对比过程中按照一定的顺序依次进行。compare_means函数能够对不同变量进行假设检验,com_list变量储存了比较的不同分组,利用for循环生成两两配对的比对列表。

df <- mpg
df$class <- as.factor(df$class)
levels(df$class)
compare <- compare_means(hwy~class,df,method = "t.test")
com_list <- list()
for (i in 1:nrow(compare)){
  com_list[[i]] <- c(compare$group1[i],compare$group2[i])
}

开始绘图

该步骤使用ggplot绘图,方法和之前的一样,不过这里显示了每个变量之间的两两比较结果。

ggplot(df,aes(class,hwy))+
  geom_boxplot(aes(fill=class))+
  stat_compare_means(comparisons = com_list,
                     test = "t.test",
                     step.increase = 0.1,
                     map_signif_level = T)+
  theme_bw()+
  scale_fill_jco()

END

© 素材来源于网络,侵权请联系后台删除

往期推荐:

文献丨群体转录组分析锁定关键转录因子

文献丨转录组RNA seq——青年阶段!

文献丨高通量表型组图像识别与GWAS

笔记丨ggplot2热图入门学习笔记

笔记丨PCA分析基本知识和数学原理

图书丨R语言、Python、Linux

超算丨数据分析时电脑配置不够用?试试

软件 | 如何进行基因家族分析?TBtools

服务器丨家用联想台式机重装Linux系统

转录组丨一套完整的操作流程案例

转录组丨利用limma包进行差异表达分析

Python笔记丨函数和类相关基础知识总结

Python笔记丨条件与循环流程知识总结

Python笔记丨数据类型基础与易错点总结

相关文章
|
3月前
R语言基于表格文件的数据绘制具有多个系列的柱状图与直方图
【9月更文挑战第9天】在R语言中,利用`ggplot2`包可绘制多系列柱状图与直方图。首先读取数据文件`data.csv`,加载`ggplot2`包后,使用`ggplot`函数指定轴与填充颜色,并通过`geom_bar`或`geom_histogram`绘图。参数如`stat`, `position`, `alpha`等可根据需要调整,实现不同系列的图表展示。
|
4月前
|
缓存 算法 前端开发
热力图生成算法及其具体实现
热力图生成算法及其具体实现
81 0
|
6月前
|
Python
Python学习笔记之Matplotlib模块入门(直线图、折线图、曲线图、散点图、柱状图、饼状图、直方图、等高线图和三维图的绘制)-2
Python学习笔记之Matplotlib模块入门(直线图、折线图、曲线图、散点图、柱状图、饼状图、直方图、等高线图和三维图的绘制)
|
6月前
|
数据可视化 开发者 Python
Python学习笔记之Matplotlib模块入门(直线图、折线图、曲线图、散点图、柱状图、饼状图、直方图、等高线图和三维图的绘制)-1
Python学习笔记之Matplotlib模块入门(直线图、折线图、曲线图、散点图、柱状图、饼状图、直方图、等高线图和三维图的绘制)
|
7月前
|
数据可视化
绘制GGPLOT2双色XY区间面积图组合交叉折线图数据可视化
绘制GGPLOT2双色XY区间面积图组合交叉折线图数据可视化
|
7月前
ggplot2如何在R语言中绘制表格
ggplot2如何在R语言中绘制表格
|
7月前
|
数据可视化 Python
使用pygal库绘制直方图、XY线图和饼状图的技术指南
使用pygal库绘制直方图、XY线图和饼状图的技术指南
72 0
如何用ggplot2绘制基因功能富集气泡图?
如何用ggplot2绘制基因功能富集气泡图?
R语言中如何进行PCA分析?利用ggplot和prcomp绘制基因表达量分析图(上)
R语言中如何进行PCA分析?利用ggplot和prcomp绘制基因表达量分析图
|
数据挖掘
R语言中如何进行PCA分析?利用ggplot和prcomp绘制基因表达量分析图(下)
R语言中如何进行PCA分析?利用ggplot和prcomp绘制基因表达量分析图(下)