畫圖專題 | 差異表達基因結果展示系列之柱狀圖

如何將好幾張功能富集結果中的柱狀圖的橫坐標的范圍全部調整為一樣的?

一般畫這個柱狀圖都是用Y叔的clusterprofiler包中的barplot函數對使用這個包的功能富集結果進行一鍵繪圖,超級簡單方便。但是當我去查找這個函數的調整坐標的參數時:

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……

也就是說這個函數里面沒有調整坐標范圍的參數,不知道是不是因為我沒找到還是什么,反正我找了好久沒有找到,我有點方。

后面我覺得還是自己用ggplot2畫吧,反正這個包里面一鍵繪圖也是根據ggplot2來的。

這個圖與一般的函數barplot畫出來的不一樣的地方在于它的顏色,這張圖里面的顏色反應的是fdr的大小,是一個連續值,ggplot2可以將連續值映射到到顏色上,橫坐標是通路中感興趣基因的個數。

用來畫圖的數據示例:

#加載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進行從小到大排序,保證最顯著的通路在前
enrich1?<-?enrich[order(enrich$qvalue),]?

#這里畫圖只展示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)?更改橫坐標的范圍這里坐標軸顛倒了,雖然看起來是x軸,但其實是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()

最后結果圖:

 

 

最近文章
网络棋牌看牌器 黑龙江时时彩走势图 状元彩票首页 青海快三今天开奖预测 福建11选5怎么买 中超积分榜30轮对阵 天天捕鱼赢话费双管炮 六肖中特怎么买啊 股票投资公司 云南十一选五开奖 网络捕鱼游戏如何作 辽宁35选7出球顺序结果 福建11选5玩法 卖二手车员工赚钱吗 黑龙江6+1开奖号 下载舟山星空棋牌 北京pk10倍投公式