构建示例数据,此处为不同差异倍数的差异表达基因的数目:
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 金字塔图形(双向柱状图)—科研工具箱-叨客学习资料网](https://cdn.leobba.cn/wp-content/uploads/image-5-1.png~tplv-vsxgrxnt6c-1.image)
将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 金字塔图形(双向柱状图)—科研工具箱-叨客学习资料网](https://cdn.leobba.cn/wp-content/uploads/image-6-1.png~tplv-vsxgrxnt6c-1.image)
© 版权声明
THE END
暂无评论内容