干货分享
气泡图(bubble chart)是可用于展示三个变量之间的关系。它与散点图类似,绘制时将一个变量放在横轴,另一个变量放在纵轴,而第三个变量则用气泡的大小来表示。排列在工作表的列中的数据(第一列中列出 x 值,在相邻列中列出相应的 y 值和气泡大小的值)可以绘制在气泡图中。气泡图与散点图相似,不同之处在于:气泡图允许在图表中额外加入一个表示大小的变量进行对比。
问:小锐,你知道怎么绘制气泡图吗?
答:知道哟,待我慢慢道来。
今天进行pathway富集气泡图代码放送,小伙伴们快快过来围观。
第一步:了解输入数据类型
![]() |
Count:差异表达基因中,属于这个通路的基因的数量。
All_count:所有基因中属于这个通路的基因的数量。
P:富集分析p值。
FDR :富集分析的Q值。
第二步:上代码
setwd('C:/Users/Administrator/Desktop/') #定义文件输入输出路径
library(ggplot2) #加载ggplot2包
pdf("kegg.pdf",8,6) #设定输出文件
pathway=read.table("pathway.txt",header=TRUE,sep="\t",check.names = 1) #读入数据
pathway$richFactor=pathway$count/pathway$All_count #计算pathway的richFactor值
p=ggplot(pathway,aes(richFactor,Pathway)) #画图
p=p+geom_point(aes(size=count)) #改变点的大小
p=p+geom_point(aes(size=count,color=-log(p))) #根据p值自定义渐变颜色图
p=p+scale_colour_gradient(low="green",high="red") + #改变图片的样式
labs(color=expression(-log(p)),size="Gene number",
x="Rich factor",y="KEGG Pathway")
p=p+theme_bw() #去除灰色背景
p
dev.off()
第三步:亮结果
![]() |
是不是感觉瞬间眼前一亮呢,如果想在X轴显示pathway,你可以这样做:
p=ggplot(pathway,aes(Pathway,richFactor)) #画图
p=p+geom_point(aes(size=count,color=-log(p))) #根据p值自定义渐变颜色图
p=p+ scale_colour_gradient(low="green",high="red") + #改变图片的样式
labs(color=expression(-log(p)),size="Gene number",
x="Rich factor",y="KEGG Pathway")
p=p+theme_bw()+theme(axis.text.x=element_text(size=8,angle=90,hjust=1)) #去除灰色背景,并对x轴字体进行设置
p
dev.off()
图形如下:
![]() |
接下来再安利一个柱状图的代码:
data$value=-log(data$p)
#data$path=rownames(data)
data<-data[order(data$value,decreasing=T),] #排序
pdf("pathway.pdf",4,6)
p<-ggplot(data,aes(x=rev(reorder(Pathway,value)),y=value)) + geom_bar(stat='identity',fill="red")+
labs(y="-log(P value)",x="KEGG Pathway")+ theme(panel.background=element_rect(fill="white",color="#767676",size=0.5),panel.grid.minor = element_line(colour="#F0F0F0", size=0.25),
panel.grid.major=element_line(size=0.25,color="#F0F0F0"))+ #设置背景色,边框线以及内部线条的粗细及颜色 theme(axis.text.x=element_text(size=7,angle=90,hjust=1,colour="black"))
p
dev.off()
![]() |
有了这些代码,就可以选取需要的pathway,绘制属于自己的图形。
神奇代码,学以致用
学无止境,下期继续
更多干货,敬请期待