ggplot2 金字塔图形(双向柱状图)—科研工具箱

请关注公众号【叨客学习资料】 在使用网站的过程中有疑问,请来公众号进行反馈哦

构建示例数据,此处为不同差异倍数的差异表达基因的数目:

dat<-data.frame(\'FC\'=c(1.5,2,3,4,5),
                \'Up\'=c(102,121,45,34,12),
                \'Down\'=c(153,164,85,24,15))

载入ggplot2以及tidyverse包,后者用于将宽数据转变为长数据:

library(ggplot2)
library(tidyverse)

开始绘图,原理就是将另外一组数据转化为负值,然后再修改坐标数值标签:

table<-gather(dat,key=Change,value=Count,-FC) #数据转换,宽长数据
table$FC<-factor(table$FC)
table[which(table$Change == \'Down\'), c(\'Count\')] <- table[which(table$Change == \'Down\'), c(\'Count\')] * -1   #将另一个样本的数据转化为负数,这是必须的一步
p<-ggplot(table,aes(FC,Count,fill=Change))+geom_col(width=0.5)+coord_flip()+scale_y_continuous(breaks = seq(-200, 200, 50), labels = as.character(abs(seq(-200, 200, 50))), limits = c(-200, 200))+  #设置y轴合适范围,并将负数转化为正数
  theme(panel.grid = element_blank(), panel.background = element_rect(color = \'black\', fill = \'transparent\'), legend.title = element_blank(),axis.text = element_text(color=\"black\",size=12),axis.title = element_text(color = \"black\",size=15)) +geom_hline(yintercept = 0, size = 0.4) + #添加中间的线,或者不添加也行  
  annotate(\'text\',label = \'Up\', 1, 190)+annotate(\'text\',label = \'Down\', 1, -190)  #添加注释信息
ggsave(p,file=\"plot.pdf\")
图片[1]-ggplot2 金字塔图形(双向柱状图)—科研工具箱-叨客学习资料网

将x轴倒序排列

table$FC<-factor(table$FC,levels=rev(unique(table$FC)))#将x轴倒序排列
p<-ggplot(table,aes(FC,Count,fill=Change))+geom_col()+coord_flip()+scale_y_continuous(breaks = seq(-200, 200, 50), labels = as.character(abs(seq(-200, 200, 50))), limits = c(-200, 200))+  #设置y轴合适范围,并将负数转化为正数
  theme(panel.grid = element_blank(), panel.background = element_rect(color = \'black\', fill = \'transparent\'), legend.title = element_blank(),axis.text = element_text(color=\"black\",size=12),axis.title = element_text(color = \"black\",size=15)) +geom_hline(yintercept = 0, size = 0.4) + #添加中间的线,或者不添加也行  
  annotate(\'text\',label = \'Up\', 1, 190)+annotate(\'text\',label = \'Down\', 1, -190)  #添加注释信息
图片[2]-ggplot2 金字塔图形(双向柱状图)—科研工具箱-叨客学习资料网
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
请输入有效评论哦,肆意灌水或者乱打评论是不会通过的,会影响您评论后获得资源哦~~
提交
头像

昵称

取消
昵称表情

    暂无评论内容