前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ggplot做蝴蝶图

ggplot做蝴蝶图

作者头像
生信编程日常
发布2020-05-08 17:11:13
1.1K0
发布2020-05-08 17:11:13
举报
文章被收录于专栏:生物信息学、python、R、linux

蝴蝶图是一种形似蝴蝶双向柱状图。做GO term 的时候常常同时展现上调和下调的数据,因此,这里用ggplot2绘制GO term双向柱状图。 输入数据为clusterProfiler的GO term 结果,其他方式做的go term 也可,这里只用到通路和Pvalue。

代码语言:javascript
复制
##ggplot2 作图
library(ggplot2)
library(stringr)
 #up
updata<-goBP.up@result[1:5,c("Description","pvalue")]
updata<-updata[order(updata$pvalue,decreasing = T),]
updata$Description<-factor(updata$Description,levels = updata$Description)
#上调 GO
GO_up <- ggplot(updata, aes(Description, -log(pvalue,10))) +
geom_col(fill = 'orange', color = 'black', width = 0.6) +
theme(panel.grid = element_blank(), panel.background = element_rect(fill = 'transparent')) +
theme(axis.line.x = element_line(colour = 'black'), axis.line.y = element_line(colour = 'transparent'), axis.ticks.y = element_line(colour = 'transparent')) +
theme(plot.title = element_text(hjust = 0.5, face = 'plain')) +
coord_flip() +
geom_hline(yintercept = 0) +
labs(x = '', y = '', title = 'UP')+scale_x_discrete(labels=function(x) str_wrap(x, width=50))

image.png

代码语言:javascript
复制
#down
downdata<-goBP.down@result[1:5,c("Description","pvalue")]
downdata<-downdata[order(downdata$pvalue,decreasing = T),]
downdata$Description<-factor(downdata$Description,levels = downdata$Description)
term.down<- levels(downdata$Description)

#下调 GO
GO_down <- ggplot(downdata, aes(Description, -log(pvalue,10))) +
geom_col(fill = 'green4', color = 'black', width = 0.6) +
theme(panel.grid = element_blank(), panel.background = element_rect(fill = 'transparent')) +
theme(axis.line.x = element_line(colour = 'black'), axis.line.y = element_line(colour = 'transparent'), axis.ticks.y = element_line(colour = 'transparent')) +
theme(plot.title = element_text(hjust = 0.5, face = 'plain')) +
geom_hline(yintercept = 0) +
coord_flip() +labs(x = '', y = '', title = 'DOWN') +scale_x_discrete(labels = term.down, position = 'top')

image.png

代码语言:javascript
复制
#合并
library(cowplot)
 plot_grid(GO_up, GO_down, nrow = 2, ncol = 2, rel_heights = c(9, 1), labels = 'GO term -log10(p-value)', label_x = 0.5, label_y = 0, label_fontface = 'plain')

参考:https://mp.weixin.qq.com/s/oqRN52ISl5O24Imj3zwO-g

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档