作者:本文作者Trigo Hoang,作者目前在香港攻讀博士學(xué)位博士坝橡,碩士期間發(fā)表了多篇生信相關(guān)的SCI泻帮,公眾號簡書會記錄作者學(xué)習(xí)生信期間的一些小筆記,希望能跟正在學(xué)習(xí)生信的同學(xué)們多交流多進(jìn)步驳庭。
責(zé)編:白介素2
最近水群刑顺,有同學(xué)看文獻(xiàn)中氯窍,遇見了一些常用的箱圖饲常,并對箱圖上添加T檢驗標(biāo)簽很感興趣。
簡介
可以仔細(xì)看一下這圖狼讨,很多學(xué)生信的作者喜歡用這種箱圖加點圖的方式來展示自己選擇的差hub基因在腫瘤組織中和正常組織中表達(dá)量的差異贝淤。因此小編在這里嘗試用一下ggplot去畫一下此類圖形,并標(biāo)注t檢驗的p值政供。
代碼示例
以iris數(shù)據(jù)集為例
#先查看一下iris數(shù)據(jù)的結(jié)構(gòu)
head(iris)
# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#1 5.1 3.5 1.4 0.2 setosa
#2 4.9 3.0 1.4 0.2 setosa
#3 4.7 3.2 1.3 0.2 setosa
#4 4.6 3.1 1.5 0.2 setosa
#5 5.0 3.6 1.4 0.2 setosa
#6 5.4 3.9 1.7 0.4 setosa
#最后一列Species是因子播聪,table一下看看
table(iris$Species)
#setosa versicolor virginica
50 50 50
#選其中倆個(setosa朽基,versicolor)進(jìn)行畫圖
test=iris[1:100,]
用ggplot畫箱圖
這里用的是ggplot2進(jìn)行畫箱圖
#test是加載數(shù)據(jù),用Species里面的分類做x軸离陶,先嘗試用Sepal.Length的數(shù)據(jù)做Y軸稼虎,畫箱圖用geom_boxplot()
ggplot(test, aes(x=Species, y=Sepal.Length)) +
geom_boxplot()
一個簡陋的箱圖就出來了
因為箱圖的背景不好看,就嘗試讓箱圖根據(jù)分類采用不同顏色招刨,讓圖形更形象
#改變邊框顏色
ggplot(test, aes(x=Species, y=Sepal.Length)) +
geom_boxplot(aes(color=Species))
在箱體里填充顏色
ggplot(test, aes(x=Species, y=Sepal.Length)) +
geom_boxplot(aes(fill=Species))
這樣箱圖就畫完了霎俩,為了方便保存,給箱圖賦值P
p=ggplot(test, aes(x=Species, y=Sepal.Length)) +
geom_boxplot(aes(fill=Species))
在箱圖基礎(chǔ)上加上散點
利用Sepal.Length里的數(shù)值在箱圖上打上散點
p + geom_jitter(position=position_jitter(0.3))
這時候已經(jīng)完成接近百分之八十了沉眶,如果有同學(xué)想改變一下散點的type打却,直接根據(jù)shape改就行。
p + geom_jitter(aes(shape=Species), position=position_jitter(0.3))
還剩最后一步谎倔,在這基礎(chǔ)上添加t檢驗的P值柳击。還是先將目前畫的圖保存一下賦值為p1.
p1=p + geom_jitter(aes(shape=Species), position=position_jitter(0.3))
畫T檢驗的P值
要用到ggpubr并構(gòu)建一個比較的list進(jìn)行t檢驗。
library("ggpubr")
class <- list(c("setosa","versicolor"))
p1 + stat_compare_means(comparisons=class,method="t.test",label="p.signif")
這樣圖就畫出來啦
圖中的ns表示P值沒統(tǒng)計學(xué)意義片习,一顆星表示0.01<P值≤0.05捌肴,倆顆星表示0.001<P值≤0.01,三顆星表示0.0001<P值≤0.001毯侦。