欢迎关注R语言数据分析指南
❝本节来分享解读一下nature communications上一篇文章的数据可视化案例图,论文中图表的数据+代码作者均有提供可从文章中直接下载,数据及代码整理的非常整洁明了,实际测试均可成功运行,对此感兴趣的读者可以去原文中详细查看。本次先来介绍论文中的Figure_3图,个人观点仅供参考,更多详细内容请参考论文介绍。
论文
The biogeography of soil microbiome potential growth rates
https://www.nature.com/articles/s41467-024-53753-w
论文原图
当然这种风格的图肯定不是R代码生成的,但是通过plspm包内的innerplot()函数可以将分析结果生成基础图,后续可在本地进行精细修改。
代码运行图
plspm官方文档
❝https://github.com/gastonstat/plspm
代码展示
library(readxl)
library(tidyverse)
library(ggpubr)
install_github("gastonstat/plspm")
library (plspm)
growth <- data.frame(read_excel("41467_2024_53753_MOESM4_ESM.xlsx"))
# 从growth数据框中选择特定列用于结构方程模型
semdata = growth[,c("MBCtoP","MBNtoP","F_genome_size","B_genome_size",
"optimum_tmp","rrn_copy_number",
"AI","MAT","pH","CS","SOC","TN","TP","DOC","AvaiN",
"Ascomycota","Actinobacteriota","Gemmatimonadota",
"Acidobacteriota","Proteobacteria","Basidiomycota",
"RelGrowth")]
# 对某些变量取自然对数转换,以减小数据的偏态分布
semdata$AI <- log(semdata$AI) # 对AI取对数
semdata$SOC <- log(semdata$SOC) # 对SOC取对数
semdata$TN <- log(semdata$TN) # 对TN取对数
semdata$TP <- log(semdata$TP) # 对TP取对数
semdata$DOC <- log(semdata$DOC) # 对DOC取对数
semdata$AvaiN <- log(semdata$AvaiN) # 对AvaiN取对数
semdata$RelGrowth <- log(semdata$RelGrowth) # 对RelGrowth取对数
# 对数据进行标准化处理,使所有变量具有均值为0、标准差为1
semdata = data.frame(scale(semdata))
# 定义数据块,将变量分组,用于PLS-PM模型
dat_blocks <- list(
MAT = c("MAT"), # MAT组包含"MAT"变量
AI = c("AI"), # AI组包含"AI"变量
Soil = c("CS", "pH"), # 土壤组包含"CS"和"pH"变量
Resources = c("SOC", "TN", "TP", "DOC", "AvaiN"), # 资源组包含五个变量
Structure = c("Ascomycota", "Gemmatimonadota", "Actinobacteriota", "Acidobacteriota", "Proteobacteria", "Basidiomycota"), # 结构组包含微生物分类变量
Traits = c("MBCtoP", "MBNtoP", "F_genome_size", "B_genome_size", "optimum_tmp", "rrn_copy_number"), # 性状组包含六个变量
Growth = "RelGrowth" # 生长组包含"RelGrowth"变量
)
# 定义路径矩阵,描述组之间的关系
MAT <- c(0, 0, 0, 0, 0, 0, 0) # MAT组不影响其他组
AI <- c(0, 0, 0, 0, 0, 0, 0) # AI组不影响其他组
Soil <- c(1, 1, 0, 0, 0, 0, 0) # 土壤组受MAT和AI影响
Resources <- c(1, 1, 1, 0, 0, 0, 0) # 资源组受MAT、AI和Soil影响
Structure <- c(1, 1, 1, 1, 0, 0, 0) # 结构组受MAT、AI、Soil和Resources影响
Traits <- c(1, 0, 0, 1, 1, 0, 0) # 性状组受MAT、Resources和Structure影响
Growth <- c(0, 1, 0, 1, 0, 1, 0) # 生长组受AI、Resources和Traits影响
# 创建路径矩阵
dat_path <- rbind(MAT, AI, Soil, Resources, Structure, Traits, Growth)
colnames(dat_path) <- rownames(dat_path) # 设置行列名称
# 创建并运行简单的PLS-PM模型,?plspm可查看更多参数
dat_pls <- plspm(semdata, dat_path, dat_blocks)
dat_pls # 查看PLS-PM模型的结果
summary(dat_pls) # 查看模型摘要
# 查看路径系数的估计值及统计信息
dat_pls$path_coefs # 查看路径系数
dat_pls$inner_model # 查看内模型结构
# 查看因果关系的路径图,更多选项参考?innerplot
innerplot(dat_pls, lcol = 'grey5') # 绘制内模型的路径图
# 查看因果关系的概要和效果
dat_pls$inner_summary # 内模型概要
dat_pls$effects # 查看路径效果
# 查看外部模型,包含外部负荷和权重
dat_pls$outer_model # 外部模型结果
# 绘制外部模型的路径图,展示负荷值
outerplot(dat_pls, lcol = 'grey9', arr.width = 0.05, box.size = 0.1) # 外部模型路径图
outerplot(dat_pls, what = "loadings", lcol = 'black', arr.width = 0.05, box.size = 0.1) # 负荷值路径图
# 查看模型的拟合度(goodness of fit),最优大于0.7
dat_pls$gof
# 绘制模型的完整可视化
plot(dat_pls) # 完整模型可视化
关注下方公众号下回更新不迷路
购买介绍
❝本节介绍到此结束,有需要学习R数据可视化的朋友欢迎到淘宝店铺:R语言数据分析指南,购买小编的R语言可视化文档(2024版),购买将赠送2023年的绘图文档内容。目前此文档(2023+2024)已经更新上传200案例文档,每个案例都附有相应的数据和代码,并配有对应的注释文档,方便大家学习和参考。
2024更新的绘图内容将同时包含数据+代码+注释文档+文档清单,2023无目录仅有数据文件夹,小编只分享案例文档,不额外回答问题,无答疑服务,零基础不推荐买。
案例特点
所选案例图均属于个性化分析图表完全适用于论文发表,内容异常丰富两年累计发布案例图200+,2024年6月起提供html版注释文档更加直观易学。文档累计上千人次购买拥有良好的社群交流体验。R代码结构清晰易懂,为防止中文乱码2024起提供单独的注释文档
R代码结构清晰易懂,为防止中文乱码2024年6月起提供单独html注释文档