ggplot2繪制箱式圖(并疊加小提琴圖和點(diǎn)圖)

本文使用基因表達(dá)數(shù)據(jù)繪制箱式圖,并疊加小提琴圖和點(diǎn)圖 (geom_boxplot繪制箱式圖,geom_violin繪制小提琴圖,geom_dotplot和geom_jitter繪制點(diǎn)圖).

了解一下R語(yǔ)言中箱式圖的術(shù)語(yǔ),以及它的含義:

導(dǎo)入數(shù)據(jù):

>genefpkm <- read.csv(file = "clipboard",header = T,sep = "\t")

>head(genefpkm)

x_d <- genefpkm? ?#復(fù)制數(shù)據(jù)框热监,萬(wàn)一后面操作失誤就不用重新導(dǎo)入數(shù)據(jù)。

x_d <- as.matrix(x_d)? ?#變成矩陣類(lèi)型才能進(jìn)行接下來(lái)的操作

x_d <- matrix(log10(as.numeric(x_d)),dimnames = list(row.names(x_d),colnames(x_d)),nrow = dim(x_d)[1])? ?#對(duì)矩陣中的每個(gè)數(shù)取log10饮寞,使數(shù)據(jù)差異減小孝扛。有些表達(dá)量為0,在這一步會(huì)返回Inf幽崩,在接下來(lái)畫(huà)圖時(shí)會(huì)直接排除掉苦始。

group <- c(rep("LPE",4*dim(genefpkm)[1]),rep("LPF",4*dim(genefpkm)[1]))? ? #分組情況

data <- data.frame(expression=c(x_d),sample=rep(colnames(x_d),each=nrow(x_d)),group = group)? ? ?#添加分組


開(kāi)始畫(huà)圖:

ggplot(data = data,aes(x=sample,y=expression,fill = group))+

stat_boxplot(geom = "errorbar",size = 1,width = 0.3,na.rm = T)+? ? ?#添加誤差線

geom_boxplot(linetype = 2,na.rm = T,outlier.alpha = 0.3,outlier.size = 3,notch = T) +? ? ?# notch參數(shù)會(huì)在箱式圖的中位線處生成缺口,可以比較缺口有無(wú)重疊慌申,來(lái)判斷中位數(shù)是否有差異陌选。linetype的值有很多,不同的值代表不同的線(在R語(yǔ)言工作區(qū)中輸入vignette("ggplot2-specs")有詳細(xì)解釋?zhuān)?/p>

? xlab("Samples") + ylab("log10(FPKM)")+

? theme(axis.text = element_text(size = rel(1.2)),

? ? ? ? axis.line = element_line(size = rel(1.5)),

? ? ? ? axis.title = element_text(size = rel(1.5)),

? ? ? ? panel.background = element_blank())+

? scale_fill_manual(values = c("darkolivegreen1", "deeppink"))? ? #手動(dòng)設(shè)置顏色

此時(shí)蹄溉,中間是虛線咨油,兩端是實(shí)線(其實(shí)都是虛線,只是誤差線是實(shí)線柒爵,覆蓋了兩端的虛線)


ggplot(data = data,aes(x=sample,y=expression,fill = group))+

? stat_boxplot(geom = "errorbar",size = 1,width = 0.3,na.rm = T,linetype = 2)+

? geom_boxplot(linetype = 2,na.rm = T,outlier.alpha = 0.3,outlier.size = 3,notch = T) +

? stat_boxplot(aes(ymin = ..lower..,ymax = ..upper..),size = 1,alpha = 1,notch = T,outlier.shape = NA,na.rm = T)+? ? ? ? #這行代碼只會(huì)畫(huà)出中間的箱子役电,上下的線不會(huì)畫(huà)出來(lái),因?yàn)樵O(shè)置了ymin = ..lower.. , ymax = ..upper..餐弱,可以看看本文第一幅圖宴霸,理解ymin和ymax是什么意思囱晴。

? xlab("Samples") + ylab("log10(FPKM)")+

? theme(axis.text = element_text(size = rel(1.2)),

? ? ? ? axis.line = element_line(size = rel(1.5)),

? ? ? ? axis.title = element_text(size = rel(1.5)),

? ? ? ? panel.background = element_blank())+

? scale_fill_manual(values = c("darkolivegreen1", "deeppink"))

此時(shí)中間是實(shí)線膏蚓,兩端是虛線(其實(shí)全都是虛線,只是中間又畫(huà)了實(shí)線的框框畸写,覆蓋了虛線)


箱式圖疊加小提琴圖:

ggplot(data = data,aes(x=sample,y=expression,fill = group))+

? geom_violin(linetype = "dashed",na.rm = T)+

? stat_boxplot(geom = "errorbar",size = 1,width = 0.3,na.rm = T,linetype = 2)+

? geom_boxplot(linetype = 2,na.rm = T,outlier.alpha = 0.3,outlier.size = 3,notch = T,width = 0.3) +? #設(shè)置箱式圖的寬度驮瞧,避免和小提琴圖重合。

? stat_boxplot(aes(ymin = ..lower..,ymax = ..upper..),size = 1,width = 0.3,notch = T,na.rm = T)+

? xlab("Samples") + ylab("log10(FPKM)")+

? theme(axis.text = element_text(size = rel(1.2)),

? ? ? ? axis.line = element_line(size = rel(1.5)),

? ? ? ? axis.title = element_text(size = rel(1.5)),

? ? ? ? panel.background = element_blank())+

? scale_fill_manual(values = c("darkolivegreen1", "deeppink"))



去掉誤差線和離群點(diǎn):

ggplot(data = data,aes(x=sample,y=expression,fill = group))+

? geom_violin(na.rm = T)+

? geom_boxplot(linetype = 2,na.rm = T,notch = T,width = 0.3,outlier.shape = NA) +

? stat_boxplot(aes(ymin = ..lower..,ymax = ..upper..),size = 1,width = 0.3,notch = T,outlier.shape = NA,na.rm = T)+

? xlab("Samples") + ylab("log10(FPKM)")+

? theme(axis.text = element_text(size = rel(1.2)),

? ? ? ? axis.line = element_line(size = rel(1.5)),

? ? ? ? axis.title = element_text(size = rel(1.5)),

? ? ? ? panel.background = element_blank())+

? scale_fill_manual(values = c("darkolivegreen1", "deeppink"))


點(diǎn)圖也可以表示小提琴圖的含義:

ggplot(data = data,aes(x=sample,y=expression,fill = group))+

? geom_boxplot(linetype = 2,na.rm = T,notch = T,width = 0.3,outlier.shape = NA) +

? stat_boxplot(aes(ymin = ..lower..,ymax = ..upper..),size = 1,width = 0.3,notch = T,outlier.shape = NA,na.rm = T)+

? geom_dotplot(binaxis = "y",stackdir = "center",dotsize = 0.11,method = "histodot",stackratio = 0.01,na.rm = T)+? #由于點(diǎn)很多枯芬,可以縮小點(diǎn)的大小和比例论笔,來(lái)展示所有點(diǎn)。

? xlab("Samples") + ylab("log10(FPKM)")+

? theme(axis.text = element_text(size = rel(1.2)),

? ? ? ? axis.line = element_line(size = rel(1.5)),

? ? ? ? axis.title = element_text(size = rel(1.5)),

? ? ? ? panel.background = element_blank())+

? scale_fill_manual(values = c("darkolivegreen1", "deeppink"))


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
禁止轉(zhuǎn)載千所,如需轉(zhuǎn)載請(qǐng)通過(guò)簡(jiǎn)信或評(píng)論聯(lián)系作者狂魔。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市淫痰,隨后出現(xiàn)的幾起案子最楷,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件籽孙,死亡現(xiàn)場(chǎng)離奇詭異烈评,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)犯建,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)讲冠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人适瓦,你說(shuō)我怎么就攤上這事竿开。” “怎么了犹菇?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵德迹,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我揭芍,道長(zhǎng)胳搞,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任称杨,我火速辦了婚禮肌毅,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘姑原。我一直安慰自己悬而,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布锭汛。 她就那樣靜靜地躺著笨奠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪唤殴。 梳的紋絲不亂的頭發(fā)上般婆,一...
    開(kāi)封第一講書(shū)人閱讀 49,111評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音朵逝,去河邊找鬼蔚袍。 笑死,一個(gè)胖子當(dāng)著我的面吹牛配名,可吹牛的內(nèi)容都是我干的啤咽。 我是一名探鬼主播,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼渠脉,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼宇整!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起芋膘,我...
    開(kāi)封第一講書(shū)人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤鳞青,失蹤者是張志新(化名)和其女友劉穎涩哟,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體盼玄,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡贴彼,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了埃儿。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片器仗。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖童番,靈堂內(nèi)的尸體忽然破棺而出精钮,到底是詐尸還是另有隱情,我是刑警寧澤剃斧,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布轨香,位于F島的核電站,受9級(jí)特大地震影響幼东,放射性物質(zhì)發(fā)生泄漏臂容。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一根蟹、第九天 我趴在偏房一處隱蔽的房頂上張望脓杉。 院中可真熱鬧,春花似錦简逮、人聲如沸球散。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)蕉堰。三九已至,卻和暖如春悲龟,著一層夾襖步出監(jiān)牢的瞬間屋讶,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工躲舌, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留丑婿,地道東北人性雄。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓没卸,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親秒旋。 傳聞我的和親對(duì)象是個(gè)殘疾皇子约计,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 1.箱線圖 Box plots 1.1 語(yǔ)法 geom_boxplot( mapping = NULL, data...
    caoqiansheng閱讀 7,931評(píng)論 0 20
  • 作者:嚴(yán)濤浙江大學(xué)作物遺傳育種在讀研究生(生物信息學(xué)方向)偽碼農(nóng),R語(yǔ)言愛(ài)好者迁筛,愛(ài)開(kāi)源 ggplot2學(xué)習(xí)筆記之圖...
    wanghaihua888閱讀 2,581評(píng)論 0 6
  • 需求論文中常見(jiàn)的分組箱型圖和分組條形圖可以直觀的比較方法的效果煤蚌,以一個(gè)圖顯示多個(gè)方法在多個(gè)數(shù)據(jù)集上的AUC或AUP...
    Seurat_Satija閱讀 6,763評(píng)論 0 9
  • p = ggplot(index, aes(x=Site, y=chao1))+ geom_boxplot(al...
    趙會(huì)成閱讀 864評(píng)論 0 2
  • 我是黑夜里大雨紛飛的人啊 1 “又到一年六月,有人笑有人哭,有人歡樂(lè)有人憂愁尉桩,有人驚喜有人失落筒占,有的覺(jué)得收獲滿滿有...
    陌忘宇閱讀 8,523評(píng)論 28 53