前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >跟着nature communications学绘图(10) ggplot2绘制菌群分布图

跟着nature communications学绘图(10) ggplot2绘制菌群分布图

作者头像
R语言数据分析指南
发布2022-09-21 15:36:46
4310
发布2022-09-21 15:36:46
举报
文章被收录于专栏:R语言数据分析指南

❝本节来进行论文图表的复现,下面来介绍NC上一张菌种组成图的绘制方法,在作者原有的基础上做了一些细微的改动,下面来看具体案例;

❝A highly conserved core bacterial microbiota with nitrogen-fixation capacity inhabits the xylem sap in maize plants ❞

加载R包

代码语言:javascript
复制
library(tidyverse)
library(ggh4x)

导入数据

代码语言:javascript
复制
sub_merge <- read_tsv("data.txt")

定义因子

代码语言:javascript
复制
sub_merge$Compartments <- factor(sub_merge$Compartments,levels=c("BS","RS","RE","VE","SE","LE","P"),
                             labels = c("BS", "RS","RE","VE","SE","LE","P"))

sub_merge$Phylum<-factor(sub_merge$Phylum,levels=c("Abditibacteriota", "Acidobacteriota", 
                                                   "Actinobacteriota","Alphaproteobacteria", 
                                                   "Bacteroidota","Chloroflexi","Deinococcota",
                                                   "Firmicutes","Gammaproteobacteria","Gemmatimonadota",
                                                   "Myxococcota","Nitrospirota","unclassified","Others"),
                         labels = c("Abditibacteriota", "Acidobacteriota", "Actinobacteriota","Alphaproteobacteria",
                                    "Bacteroidota","Chloroflexi","Deinococcota","Firmicutes","Gammaproteobacteria",
                                    "Gemmatimonadota","Myxococcota","Nitrospirota","unclassified","Others"))

自定义数据

代码语言:javascript
复制
phy.cols <- c("#FF6A6A","#FF8247","#FFE7BA","#87CEFA","#B0E0E6","#48D1CC","#5F9EA0","#66CDAA",
              "#458B00","#BCEE68","#FFF68F","#EEEE00","#FFFFE0","#8B8682") 

数据可视化

代码语言:javascript
复制
ggplot(sub_merge, aes(x = TreatmentID,y=`Relative abundance (%)`,fill=Phylum)) +
  geom_bar(stat='identity', position = "fill")+  
  labs(x="Treatment",y="Relative abundance")+
  facet_nested(Soiltype+Site~Compartments,drop=T,scale = "free",space="free")+
  scale_y_continuous(expand=c(0,0),labels=scales::percent)+
  theme_bw()+
  theme(axis.text.x = element_blank(),
        axis.ticks.x=element_blank(),
        axis.text.y = element_text(size = 8,color="black"),
        axis.title.y= element_text(size=12,color="black"),
        axis.title.x = element_text(size = 12),
        legend.title=element_text(size=12),
        legend.text=element_text(size=10),
        legend.position = "bottom",
        panel.spacing.x=unit(0,"lines"),
        panel.spacing.y=unit(0.5,"lines"))+
  scale_fill_manual(values=phy.cols) 

❝好了本节介绍到此结束,整个代码还是非常简洁的

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-07-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 R语言数据分析指南 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 加载R包
  • 导入数据
  • 定义因子
  • 自定义数据
  • 数据可视化
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档