前面提到了用R画网络图,免不了要对网络图nodes和edges的特征做一些统计。分享下我的代码:

########## nodes edges的统计###########
# ####nodes的度有三种:点度中心度(degree),接近中心度(closeness),中间中心度(centrality)
routes_tidy <-routes_tidy %>%
activate(nodes) %>%
mutate(degree = centrality_degree())

#degree(routes_tidy,normalized = T) #相对点中心度=绝对点中心度/最大度数
#degree.distribution(routes_tidy) #点度频率每种点度数的个数/所有点个数
#cc<- betweenness(routes_tidy,normalized = T) #点的中心度
routes_tidy <-routes_tidy %>%
activate(nodes) %>%
mutate(centrality= centrality_eigen())#点的中心度
#接近中心度——点出度、点入度、相对接近中心度
#closeness(g,vids=which(V(g)$label=="c"))

edge.betweenness(routes_tidy) #线的中间中心度

# #
# routes_tidy <-routes_tidy %>%
# activate(nodes) %>%
# mutate(frequency = degree(routes_tidy)/vcount(routes_tidy))#点度频率每种点度数的个数/所有点个数

giant <- components(routes_tidy)#nodes组成的连通分支

####connectivity####
shortest.paths(routes_tidy)#最短路径
average.path.length(routes_tidy)#平均最短路径
edge_density(routes_tidy)#边的密度
diameter(routes_tidy)#最长最短路径
aa<-get_diameter(routes_tidy, directed=FALSE, weights=NA)#两个node之间的最长最短路径

具体可以参考文档Week3Lecture.pdf

#####聚类算法#####

#cluster_optimal

#cluster_walktrap
#cluster_edge_betweenness

#cluster_fast_greedy

#cluster_infomap

#cluster_label_prop

#cluster_leading_eigen

#cluster_louvain

#cluster_spinglass

05-06 14:16