
cell_3.jpg
跟著 Cell 學(xué)作圖 | 3.箱線圖+散點(diǎn)+差異顯著性檢驗(yàn)
“實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)?!?/p>
“復(fù)現(xiàn)是學(xué)習(xí)R語(yǔ)言的最好辦法。”

2021.4.12_1
這篇2020年發(fā)表在cell上關(guān)于新冠的組學(xué)文章里面有大量的生信內(nèi)容。今天帶大家復(fù)現(xiàn)其中的一個(gè)Supplemental Figure:帶散點(diǎn)的箱線圖。
本文代碼及示例數(shù)據(jù)領(lǐng)取:后臺(tái)回復(fù)“20210416”

2021.4.16_1
比較常用的展示差異的可視化方法。
數(shù)據(jù)格式

2021.4.16_2
注:以上數(shù)據(jù)純屬虛構(gòu),無(wú)實(shí)際意義!
思路
- 箱線圖+顯著性檢驗(yàn)+散點(diǎn)
均值比較的常見(jiàn)方法:
| 方法 | R實(shí)現(xiàn)函數(shù) | 描述 |
|---|---|---|
| T-test | t.test() | 比較兩組(參數(shù)檢驗(yàn)) |
| Wilcoxon test | wilcox.test() | 比較兩組(非參數(shù)檢驗(yàn)) |
| ANOVA | aov()或anova() | 比較多組(參數(shù)檢驗(yàn)) |
| Kruskal-Wallis | kruskal.test() | 比較多組(非參數(shù)檢驗(yàn)) |
繪制
#------
title: "boxplot"
author: "MZBJ"
date: "2020/4/16"
#-----
# 導(dǎo)入所需的包
library(ggplot2)
library(ggsignif)
library(ggpubr)
library(RColorBrewer)
setwd("F:/HJH/mzbj/cell")
# 導(dǎo)入數(shù)據(jù)
plot_data <- read.csv(file = "ABCD.csv")
#-----------------------
p<- ggplot(data=plot_data)+
geom_boxplot(mapping=aes(x=group,y=Retive_Abundance,colour = group ), #箱線圖
alpha = 0.5,
size=1.5,
width = 0.6)+
geom_jitter(mapping=aes(x=group,y=Retive_Abundance,colour = group), #散點(diǎn)
alpha = 0.3,size=3)+
scale_color_manual(limits=c("A","B","C","D"),
values=c("#85B22E","#5F80B4","#E29827","#922927"))+ #顏色
geom_signif(mapping=aes(x=group,y=Retive_Abundance), # 不同組別的顯著性
comparisons = list(c("A", "B"), # 哪些組進(jìn)行比較
c("A", "C"),
c("A", "D"),
c("B", "C"),
c("B", "D"),
c("C", "D")),
map_signif_level=T, # T顯示顯著性,F(xiàn)顯示p value
tip_length=c(0,0,0,0,0,0,0,0,0,0,0,0), # 修改顯著性線兩端的長(zhǎng)短
y_position = c(40,41,42,39,38,40), # 設(shè)置顯著性線的位置高度
size=1, # 修改線的粗細(xì)
textsize = 4, # 修改顯著性標(biāo)記的大小
test = "t.test")+ # 檢驗(yàn)的類型
theme_classic( # 主題設(shè)置,這個(gè)是無(wú)線條主題
base_line_size = 1 # 坐標(biāo)軸的粗細(xì)
)+
labs(title="White blood cell(WBC)",x="",y="Retive_Abundance")+ # 添加標(biāo)題,x軸,y軸內(nèi)容
theme(plot.title = element_text(size = 15,
colour = "black",
hjust = 0.5),
axis.title.y = element_text(size = 15,
# family = "myFont",
color = "black",
face = "bold",
vjust = 1.9,
hjust = 0.5,
angle = 90),
legend.title = element_text(color="black", # 修改圖例的標(biāo)題
size=15,
face="bold"),
legend.text = element_text(color="black", # 設(shè)置圖例標(biāo)簽文字
size = 10,
face = "bold"),
axis.text.x = element_text(size = 13, # 修改X軸上字體大小,
color = "black", # 顏色
face = "bold", # face取值:plain普通,bold加粗,italic斜體,bold.italic斜體加粗
vjust = 0.5, # 位置
hjust = 0.5,
angle = 0), #角度
axis.text.y = element_text(size = 13,
color = "black",
face = "bold",
vjust = 0.5,
hjust = 0.5,
angle = 0)
)
p

2021.4.16_3.png
大功告成!
備注:有個(gè)瑕疵就是y軸過(guò)長(zhǎng)。但是我設(shè)定y軸范圍后,差異標(biāo)記也被截掉了。目前能想到的解決辦法就是AI簡(jiǎn)單向下拉一下Y軸。
往期內(nèi)容: