利用ggplot2进行x、y坐标轴互换只需借助coord_flip()即可,譬如,以ggplot2绘图代码 https://www.omicsclass.com/article/92 为例,添加一个坐标互换函数,实现互换
library('ggplot2')
library('reshape2')
A = c("A","B","C","D","E")
B = c(90,34,56,99,15)
C = c(50,20,24,70,14)
dat = data.frame(A,B,C)
names(dat) = c("type","sample1","sample2")
dat = melt(dat,variable.name="Sample",value.name = "Num")
head(dat)
p = ggplot(dat, aes(x = type,y = Num,fill = Sample))+
#####这部分的position_dodge(width=0.8)大于宽width = 0.6点,可以使得分组内柱子之间有缝隙,而不是贴合。
geom_bar(stat ="identity",width = 0.6,position = position_dodge(width=0.8))+
scale_fill_manual(values = c("red","blue"))+
labs(x = "",y = "", title = "test")+
###########文字的position设置类似bar的position
geom_text(aes(label = dat$Num),position=position_dodge(width = 0.9),size = 5,vjust = -0.25)+
guides(fill = guide_legend(reverse = F))+
theme(plot.title = element_text(size = 25,face = "bold", vjust = 0.5, hjust = 0.5),
legend.title = element_blank(),
legend.text = element_text(size = 18, face = "bold"),
legend.position = 'right',
legend.key.size=unit(0.8,'cm'))
p=p+coord_flip()
p
不过由图片可知,进行坐标互换之后,原来的设置中关于文字图层中文字位置需要进行调整,具体调整vjust和hjust即可。譬如:
library('ggplot2')
library('reshape2')
A = c("A","B","C","D","E")
B = c(90,34,56,99,15)
C = c(50,20,24,70,14)
dat = data.frame(A,B,C)
names(dat) = c("type","sample1","sample2")
dat = melt(dat,variable.name="Sample",value.name = "Num")
head(dat)
p = ggplot(dat, aes(x = type,y = Num,fill = Sample))+
#####这部分的position_dodge(width=0.8)大于宽width = 0.6点,可以使得分组内柱子之间有缝隙,而不是贴合。
geom_bar(stat ="identity",width = 0.6,position = position_dodge(width=0.8))+
scale_fill_manual(values = c("red","blue"))+
labs(x = "",y = "", title = "test")+
###########文字的position设置类似bar的position
geom_text(aes(label = dat$Num),position=position_dodge(width = 0.9),size = 5,vjust = 0.5,hjust=-0.25)+
guides(fill = guide_legend(reverse = F))+
theme(plot.title = element_text(size = 25,face = "bold", vjust = 0.5, hjust = 0.5),
legend.title = element_blank(),
legend.text = element_text(size = 18, face = "bold"),
legend.position = 'right',
legend.key.size=unit(0.8,'cm'))
p=p+coord_flip()
p
如果想提升自己的绘图技能,我们推荐:R语言绘图基础(ggplot2)
1. 文章越来越难发?是你没发现新思路,基因家族分析发2-4分文章简单快速,学习链接:基因家族分析实操课程、基因家族文献思路解读
2. 转录组数据理解不深入?图表看不懂?点击链接学习深入解读数据结果文件,学习链接:转录组(有参)结果解读;转录组(无参)结果解读
3. 转录组数据深入挖掘技能-WGCNA,提升你的文章档次,学习链接:WGCNA-加权基因共表达网络分析
4. 转录组数据怎么挖掘?学习链接:转录组标准分析后的数据挖掘、转录组文献解读
5. 微生物16S/ITS/18S分析原理及结果解读、OTU网络图绘制、cytoscape与网络图绘制课程
6. 生物信息入门到精通必修基础课:linux系统使用、perl入门到精通、perl语言高级、R语言入门、R语言画图
7. 医学相关数据挖掘课程,不用做实验也能发文章:TCGA-差异基因分析、GEO芯片数据挖掘、GEO芯片数据标准化、GSEA富集分析课程、TCGA临床数据生存分析、TCGA-转录因子分析、TCGA-ceRNA调控网络分析
8.其他,二代测序转录组数据自主分析、NCBI数据上传、二代测序数据解读
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!