本次更新写在前面网络整体属性- 平均度(Average degree)和平均加权度(Average weighted degree)
对网络整体而言,平均度(average degree)为该网络中所有节点的度的平均值;同样的,平均加权度(average weighted degree)为该网络中所有节点的加权度的平均值。平均度和平均加权度可反映网络整体的连通程度。 对于每个节点的度和加权度的定义,详见“节点和边特征”。 - 距离(Distance)和网络直径(Diameter)
网络图中节点间的“距离”(distance)这一概念,被定义为节点间最短路径的长度(若不存在路径则为正无穷)。这一距离也常被称为“捷径距离”(geodesic distance),其中“捷径”(geodesic)是最短路径的另一个名字。网络图中最长的距离的值被称为图的“直径”(diameter)。网络直径可反映网络的规模。 图密度(Density)
一个图的“密度”(density)是指实际出现的边与可能的边的频数之比,反映了网络的凝聚性特征。 聚类系数(clustering coefficient)
相对频率也可以用于定义图中的“聚集性”(clustering)概念,反映了网络的凝聚性特征。 图分割(graph partitioning)和模块度(Modularity)
图分割(graph partitioning)问题在复杂网络方面的文献中也常被称为社团发现(community detection)问题。 模块度(modularity)是社团发现中用来衡量社团划分质量的一种方法,一个相对好的结果在社团(community)内部的节点连接度较高,而在社团外部节点的连接度较低。 网络节点属性网络图中的基本元素是节点和边。 节点和边通常会存在多种属性,代表了系统中元素的自身属性,以帮助我们更好地识别网络结构。 关于节点和边属性的简要描述同样可见“网络基础简介”。 通常情况下,这些属性往往是系统中元素所固有的,与这些元素本身有关。 除了固有属性,当元素存在于网络结构中时,会被赋予一些重要的“节点特征”; 同样地,边也被赋予了重要的“边特征”。 这些可帮助我们进一步分析网络的拓扑结构。 节点度(Degree): 节点的度(频率)分布具有不同的特征,即服从不同的分布模式。 网络度分布模式反映了该网络特殊的结构特征。 如微生物共发生网络的度一般符合幂律分布,大部分物种具有少量的连接数,极个别的物种具有非常多的连接数,表明微生物群落构建方式是非随机的过程。 接近中心性(Closeness centrality): 接近中心性它反映了网络中某一节点与其他节点之间的接近程度。 即对于一个节点,它距离其他节点越近,那么它的接近性中心性越大,也就越“重要”。 介数中心性(Betweenness centrality): 如果我们将这些路径视作进行通信所需的渠道,那么处于多条路径上的节点就是通信过程中的关键环节。 特征向量中心性(Eigenvector centrality): 如果一个节点的邻居中心性越高,节点本身的中心性也越高
实战#--导入所需R包#------- library(igraph) library(network) library(sna) library(ggplot2) library(ggrepel) library(ggClusterNet) library(tidyverse) library("ggalt") 网络性质计算# usethis::use_data(igraph, overwrite = TRUE) data(igraph) reslt = net_properties(igraph) write.csv(reslt,"netproperties.csv") ![](http://image109.360doc.com/DownloadImg/2021/01/1600/213115435_1_2021011612150288_wm)
节点性质计算节点的性质可以映射到图形上。方便使用。 nodepro = node_properties(igraph) dim(nodepro) write.csv(nodepro,"nodeproperties.csv") ![](http://image109.360doc.com/DownloadImg/2021/01/1600/213115435_2_20210116121502432_wm)
合并节点属性和物种和注释信息# usethis::use_data(nodes, overwrite = TRUE) # usethis::use_data(edge, overwrite = TRUE) data(nodes) data(edge) #--------- nodeG = merge(nodes,nodepro,by = "row.names",all =FALSE) dim(nodeG) head(nodeG) write.csv(nodeG,"nodeproperties1.csv") ![](http://image109.360doc.com/DownloadImg/2021/01/1600/213115435_3_20210116121502682_wm)
出图pnet <- ggplot() + geom_segment(aes(x = X1, y = Y1, xend = X2, yend = Y2,color = as.factor(wei_label)), data = edge, size = 0.5) + geom_point(aes(X1, X2,fill = Phylum,size = igraph.degree),pch = 21, data = nodeG) + scale_colour_brewer(palette = "Set1") + scale_x_continuous(breaks = NULL) + scale_y_continuous(breaks = NULL) + # labs( title = paste(layout,"network",sep = "_"))+ # geom_text_repel(aes(X1, X2,label=Phylum),size=4, data = plotcord)+ # discard default grid + titles in ggplot2 theme(panel.background = element_blank()) + # theme(legend.position = "none") + theme(axis.title.x = element_blank(), axis.title.y = element_blank()) + theme(legend.background = element_rect(colour = NA)) + theme(panel.background = element_rect(fill = "white", colour = NA)) + theme(panel.grid.minor = element_blank(), panel.grid.major = element_blank()) pnet
# pnet <- pnet + geom_text_repel(aes(X1, X2,label=elements),size=4, data = nodes) ![](http://image109.360doc.com/DownloadImg/2021/01/1600/213115435_4_20210116121503434_wm)
|