本文代码已经上传至https://github.com/iMetaScience/iMetaPlot如果你使用本代码,请引用:Changchao Li. 2023. Destabilized microbial networks with distinct performances of abundant and rare biospheres in maintaining networks under increasing salinity stress. iMeta 1: e79. https://onlinelibrary.wiley.com/doi/10.1002/imt2.79

代码翻译及注释:农心生信工作室

写在前面

山峦图可以用来展现数据分布类型,数据分布情况用峰的高低来表示,分布越密集的区间,峰越高。

本期我们挑选2023年1月9日刊登在iMeta上的Destabilized microbial networks with distinct performances of abundant and rare biospheres in maintaining networks under increasing salinity stress,以文章中Figure 2C为例,讲解和探讨如何利用山峦图展示微生物丰度随盐度增加的动态变化,先上原图:

代码、数据和结果下载,请访问https://github.com/iMetaScience/iMetaPlot/tree/main/230410ggridges

接下来,我们将通过详尽的代码逐步拆解原图,最终实现对原图的复现。

R包检测和安装

01

安装核心R包ggridges以及一些功能辅助性R包,并载入所有R包。

library(ggplot2)
if (!require("ggridges"))install.packages("ggridges")library(ggridges)# 这个包主要用来绘制山峦图,尤其是针对时间或者空间分布可视化
library(reshape2)
library(ggsci)

读取数据

02

读取绘制所需数据并进行必要转换。

otu <- read.csv('feature23.csv')
#由于各 OTU 丰度之间差异巨大,对丰度标准化处理
otu[2:ncol(otu)] <- scale(otu[2:ncol(otu)], center = FALSE)#对表中2到24列做归一化,但不做中心化
#将宽数据变成长数据
otu1 <- reshape2::melt(otu, id = 'Salinity') #保留的字段是“Salinity”,转化后“variable”是原本每列菌的名字,“value”是对应每个菌的丰度值
head(otu1)

#读取分组数据
type <- read.csv('feature_type.csv')
#将分组数据和OTU数据合并到一起
otu2 <- merge(otu1, type, by = 'variable') #合并时按名为“variable'的列为准合并
head(otu2)

绘制山峦图

03

基础图形绘制。

#预设颜色
peakcol = c("#9ECAE1", "#2171B5", "#999999")
p2c <-  ggplot(otu2, aes(x = Salinity, y = variable, height = value, fill = type))+geom_ridgeline(stat="identity",scale=1,color='white',show.legend=T)+#主要绘制山脊线图,绘图函数里的stat参数表示对样本点做统计的方式,默认为identity,表示一个x对应一个yscale_fill_manual(values = peakcol,limits = c('Low-salinity colonizing','High-salinity colonizing','Complex'))#设置填充颜色,按limits(即type)填充预设的peakcol中的颜色
p2c

04

对图形进行细节美化

p2c1 <-p2c+ scale_x_continuous(expand = c(0, 0))+#修改x轴刻度,这个也可以在theme()中输入axis.ticks.X=element_blank()取消x轴刻度theme_minimal()+ #预设主题theme(axis.title.x=element_blank(),axis.text.x.bottom=element_blank())+#取消设定的x轴标题和文本labs(x = 'Salinity (ppt)', y = 'Salinity discriminant features')#设置x轴和y轴的标题
p2c1

完整代码

library(ggplot2)
library(ggridges)
library(reshape2)
library(ggsci)otu <- read.csv('feature23.csv')
# 对丰度标准化处理,并且转换成长数据格式
otu[2:ncol(otu)] <- scale(otu[2:ncol(otu)], center = FALSE)
otu1 <- reshape2::melt(otu, id = 'Salinity')
# 读取分组数据
type <- read.csv('feature_type.csv')
# 将分组数据和OTU数据合并到一起
otu2 <- merge(otu1, type, by = 'variable')peakcol = c("#9ECAE1", "#2171B5", "#999999")
p2c <-  ggplot(otu2, aes(x = Salinity, y = variable, height = value, fill = type))+#主要绘制山脊线图,绘图函数里的stat参数表示对样本点做统计的方式,默认为identity,表示一个x对应一个ygeom_ridgeline(stat = "identity", scale = 1,color = 'white', show.legend = T)+# 设置填充颜色,按limits(即type)填充预设的peakcol中的颜色scale_fill_manual(values = peakcol, limits = c('Low-salinity colonizing','High-salinity colonizing','Complex'))# 接下了需要对整体进行细节美化
p2c1 <- p2c+ scale_x_continuous(expand = c(0, 0))+# 修改x轴刻度theme_minimal()+ #预设主题theme(axis.title.x = element_blank(),axis.text.x.bottom = element_blank())+# 取消设定的x轴标题和文本labs(x = 'Salinity (ppt)', y = 'Salinity discriminant features')# 设置x轴和y轴的标题
p2c1
ggsave("山峦图展示微生物丰度随盐度增加的动态变化.pdf", p2c1, width = 8, height = 5)

以上数据和代码仅供大家参考,如有不完善之处,欢迎大家指正!

更多推荐

(▼ 点击跳转)

高引文章 ▸▸▸▸

iMeta | 德国国家肿瘤中心顾祖光发表复杂热图(ComplexHeatmap)可视化方法

▸▸▸▸

iMeta | 浙大倪艳组MetOrigin实现代谢物溯源和肠道微生物组与代谢组整合分析

▸▸▸▸

iMeta | 高颜值绘图网站imageGP+视频教程合集

1卷1期

1卷2期

1卷3期

1卷4期

2卷1期

期刊简介

“iMeta” 是由威立、肠菌分会和本领域数百位华人科学家合作出版的开放获取期刊,主编由中科院微生物所刘双江研究员和荷兰格罗宁根大学傅静远教授担任。目的是发表原创研究、方法和综述以促进宏基因组学、微生物组和生物信息学发展。目标是发表前10%(IF > 15)的高影响力论文。期刊特色包括视频投稿、可重复分析、图片打磨、青年编委、前3年免出版费、50万用户的社交媒体宣传等。2022年2月正式创刊发行!

联系我们

iMeta主页:http://www.imeta.science

出版社:https://onlinelibrary.wiley.com/journal/2770596x
投稿:https://mc.manuscriptcentral.com/imeta
邮箱:office@imeta.science

每日书籍推荐 - R数据科学

《R数据科学》的作者是Hadley Wickham,这个人我们大家一定很熟悉,ggplot2的开发者,Rstudio的首席科学家。当然他对R社区的贡献远不止于此,他的主页https://hadley.nz/有很多R的学习资料,如Advanced R。这本《R数据科学》原版也可直接在https://r4ds.had.co.nz免费阅读。

这本R数据科学从ggplot2绘图入手,降低了入门的难度和枯燥感。后面则顺着数据分析的主线,从数据读入、数据整理、格式转换、数据可视化到统计模型、Rmarkdown分享,是一本精心组织的涵盖R应用很多方面的一本经典之作。英文没问题的直接在线看英文版,喜欢质感的买本中文书抱着读读也是开卷有益。

跟着iMeta学作图 | 山峦图展示微生物丰度随盐度增加的动态变化相关推荐

  1. 跟着 Cell 学作图 | 桑葚图(ggalluvial)

    桑葚图 今天我们复现一幅2021年Cell上Graphical abstract的图. Title:Human oral mucosa cell atlas reveals a stromal-neu ...

  2. 跟着 NC 学作图 | 多组散点图+配对连线+差异分析

    scatter_paired_line 今天我们复现一幅2022年7月发表在nature communications上的配对连线散点图. ❝ Title:Evaluation of transpla ...

  3. 跟着CELL学作图|1.火山图

    跟着CELL学作图之火山图 "实践是检验真理的唯一标准." "复现是学习R语言的最好办法." DOI: 10.1016/j.cell.2020.05.032 这 ...

  4. 跟着 Cell 学作图 | 4.小提琴图

    跟着 Cell 学作图 | 4.小提琴图 "实践是检验真理的唯一标准." "复现是学习R语言的最好办法." DOI: 10.1016/j.cell.2020.0 ...

  5. 跟着 Cell 学作图 | 3.箱线图+散点+差异显著性检验

    跟着 Cell 学作图 | 3.箱线图+散点+差异显著性检验 "实践是检验真理的唯一标准." "复现是学习R语言的最好办法." DOI: 10.1016/j.c ...

  6. 跟着Cell学作图 | 12.韦恩图(Vennerable包)

    "实践是检验真理的唯一标准." "复现是学习生信的最好办法." 2021.4.12_1 DOI: 10.1016/j.cell.2020.05.032 这篇20 ...

  7. 跟着Cell学作图 | 5.UMAP降维分析

    跟着 Cell 学作图 | 5.UMAP降维分析 "实践是检验真理的唯一标准." "复现是学习R语言的最好办法." 2021.4.12_1 DOI: 10.10 ...

  8. 245热图展示微生物组的物种和功能丰度或有无、距离矩阵

    245热图展示微生物组的物种和功能丰度或有无 本节作者:吴一磊 中科院微生物所 版本1.0.7,更新日期:2020年8月13日 本项目永久地址:https://github.com/YongxinLi ...

  9. 跟着Cell学作图|9.PPI分析(GeNets数据库)

    9.PPI分析(GeNets数据库) "实践是检验真理的唯一标准." "复现是学习R语言的最好办法." DOI: 10.1016/j.cell.2020.05. ...

最新文章

  1. 教你用Android做二次开发,识别率达到科大讯飞语音输入水平 | 原力计划
  2. 生产环境:Nginx高可用方案
  3. 模拟课----需求文本
  4. 服务器输入字符在客户端显示,管理 Unicode 服务器与非 Unicode 客户端之间的数据转换...
  5. html5 的menu的属性,HTML5 menu 标签
  6. 产品经理必须知道的一点知识:三种方法判断一个产品该不该做
  7. Linux批量删除文件
  8. 【Python学习】 - sklearn - PCA降维相关
  9. ptcms精美小说阅读网站源码(带采集规则)
  10. 【源码分析】微信小程序 - 01表单组件 - 01button - 实践
  11. 机器学习笔记——逻辑回归(Logistic Regression)
  12. opencv函数制作的秒针模型
  13. Oracle Decode()函数和CASE语句的比较
  14. sql server 函数--rand() 生成整数的随机数
  15. Oracle数据库 入门教程
  16. 计算机二级考试公共基础知识都是一样的吗,计算机二级公共基础知识全国一样吗?...
  17. [MSSQL] 数据库置疑怎么处理?
  18. 心回暖------振作
  19. 机器学习入门(五):集成学习Bagging,Boosting,RandomForest和GridSearchCV参数调优
  20. order by Sql server

热门文章

  1. 倩女幽魂,新与旧的较量,及下载地址
  2. 聚焦离子束FIB测试用途以及注意事项
  3. 信号传输:为什么用差分信号
  4. 高等数学常数变易法来源
  5. CSS——css+div横向排列自动换行
  6. CSDN积分和等级的划分
  7. Swagger2 被拦截处理
  8. 如何将QQ邮箱添加到Mac自带的邮箱(太难了)
  9. 使用 text_io 输出成 excel 格式的突破性发现(SLK)
  10. MATLAB打开,中文注释乱码情况怎么解决?