如何將好幾張功能富集結果中的柱狀圖的橫坐標的范圍全部調整為一樣的?
一般畫(huà)這個(gè)柱狀圖都是用Y叔的clusterprofiler包中的barplot函數對使用這個(gè)包的功能富集結果進(jìn)行一鍵繪圖,超級簡(jiǎn)單方便。但是當我去查找這個(gè)函數的調整坐標的參數時(shí):
Usage
##?S3?method?for?class?‘enrichResult’
barplot(height,?x?=?“Count”,?colorBy?=?“pvalue”,
?showCategory?=?5,?font.size?=?12,?title?=?“”,?…)
Arguments
height?????????????enrichResult?object
x?????????????????one?of?‘Count’?and?‘GeneRatio’
colorBy???????????one?of?‘pvalue’,?‘p.adjust’,?‘qvalue’
showCategory?????number?of?categories?to?show
font.size??????????font?size
title??????????????plot?title
…???????????????other?parameter,?ignored
other?parameter,?ignored,other?parameter,?ignored,other?parameter,?ignored……
也就是說(shuō)這個(gè)函數里面沒(méi)有調整坐標范圍的參數,不知道是不是因為我沒(méi)找到還是什么,反正我找了好久沒(méi)有找到,我有點(diǎn)方。
后面我覺(jué)得還是自己用ggplot2畫(huà)吧,反正這個(gè)包里面一鍵繪圖也是根據ggplot2來(lái)的。
這個(gè)圖與一般的函數barplot畫(huà)出來(lái)的不一樣的地方在于它的顏色,這張圖里面的顏色反應的是fdr的大小,是一個(gè)連續值,ggplot2可以將連續值映射到到顏色上,橫坐標是通路中感興趣基因的個(gè)數。
用來(lái)畫(huà)圖的數據示例:
#加載ggplot2包
library(ggplot2)?
#一鍵清除
rm(list=ls())
#設置文件路徑
setwd(“D:/zhangj/DZH/enrichment”)?
#讀取功能富集結
enrich?<-?read.table(“S01_S03_S05_vs_S02_S04_S06_Biological_Process_enrich.list”,?header=T,sep=”\t”,stringsAsFactors=F,comment.char=””,quote=”\””)
#對富集結果按照qvalue進(jìn)行從小到大排序,保證最顯著(zhù)的通路在前
enrich1?<-?enrich[order(enrich$qvalue),]?
#這里畫(huà)圖只展示top10的通路
enrich2?<-?enrich1[1:10,]
#提取每條通路里面差異表達的基因數
count?<-?as.numeric(unlist(strsplit(enrich2$GeneRatio,”/5498″,fixed=T)))?
enrich3?<-?data.frame(enrich2[,2],count,enrich2[,7])
colnames(enrich3)?<-?c(“ID”,”count”,”qvalue”)
#fill=qvalue?fill顏色填充,使用連續值qvalue
p?<-?ggplot(data=enrich3,aes(x=ID,y=count,fill=qvalue))
#coord_flip()顛倒坐標軸
p1?<-?p?+?geom_bar(stat=”identity”)?+?coord_flip()
p2?<-?p1?+?theme(panel.background=element_rect(fill=’transparent’,color=’gray’),
???????????axis.text.y=element_text(color=”black”,size=12))
#ylim(0,20)?更改橫坐標的范圍這里坐標軸顛倒了,雖然看起來(lái)是x軸,但其實(shí)是y軸
p3?<-?p2?+?ylim(0,20)?+?scale_fill_gradient(low=”red”,high=”blue”)
p4?<-?p3?+?scale_x_discrete(limits=rev(enrich3[,1]))?+labs(x=””,y=””,title=”Biological_Process”)
#輸出為png格式的圖片
png(“S01_S03_S05_vs_S02_S04_S06_Biological_Process_enrich.png”,width=680,height=480)
print(p4)
dev.off()
#輸出為pdf的文件
pdf(“S01_S03_S05_vs_S02_S04_S06_Biological_Process_enrich.pdf”,width=9)
print(p4)
dev.off()
最后結果圖: