R绘图 |
您所在的位置:网站首页 › 网络图的绘图方法 › R绘图 |
https://doi.org/10.1016/j.soilbio.2020.107782 有师妹想要绘制一张类似上图的环境因子-物种相关性网络图。这张图其实还挺好复现的,将环境因子与物种都作为变量一起计算相关性指数,然后绘图时更改网络图的布局参数,将环境因子与物种分内外环放置。下面使用虚构数据绘制一幅类似的图。 一、 导入数据 物种名中的空格、-等特殊字符需要注意,导入语R中会变成".",可能导致后面合并表格,计算节点出现NA值。所以导入数据时设置check.names = FALSE,使行名和列名原样导入。计算相关性系数后,行名中的的特殊字符也会变成.,可以自行重命名一下。最好导入数据中不要存在特殊字符。 # 1.1 设置工作路径、加载R包 setwd("D:\\EnvStat\\network\\layout") library(tidyverse) library(igraph) library(ggraph) library(tidygraph) library(reshape2) library(ggplot2) library(psych) # 1.1 导入数据:观测-变量数据表 data% filter(p % mutate( linecolor = ifelse(r > 0,"positive","negative"), # 设置链接线属性,可用于设置线型和颜色。 linesize = abs(r) # 设置链接线宽度。 ) # 此输出仍有重复链接,后面需进一步去除。 head(cor.data)图3|相关性链接表,cor.data。data存在重复的链接(例AK-pH,pH-AK),后面还需要过滤。 三、 构建网络 上步骤生成的cor.data中,存在重复的链接(例AK-pH,pH-AK),用此数据构建的网络图,不是简单图。所以依此计算的节点degree有误,后面需要转为简单图后,重新计算节点degree。 3.1 准备节点属性文件 # 3.1 准备节点属性文件 ## 3.1.1 计算每个节点具有的链接数(degree) c(as.character(cor.data$from),as.character(cor.data$to)) %>% as_tibble() %>% group_by(value) %>% summarize(n=n()) -> vertices colnames(vertices) % # 因为此处的n不准确,所以先删除。 left_join(type,by="name") ## 3.1.3 对节点属性表进行排序 #网络图中节点会按照节点属性文件的顺序依次绘制, ##为了使同类型变量位置靠近,按照节点属性对节点进行排序。 ##环境变量最好置于表格末尾,否则后续绘图可能会效果不好 ##此处使用type进行排序,依次是细菌、真菌和环境因子, ##然后按照group排序,使同一属的物种彼此靠近。 vertices$type |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |