利用R语言计算网络的中心性系数与绘制对偶图

xiaoxiao2025-11-06  4

如果已经具有.net数据便直接可以利用R的igraph包进行计算网络的中心性系数与绘制对偶图。而如果数据为shp或其他,则需要先进行数据的转化,转化为.net数据再放入R中计算。 同样Matlab,也有对应计算这些参数的函数,详情可查询matlab的centrality等函数,python的networkx也提供了相关的函数。

Betweenness Centrality

library(igraph) Betweenness<-function() { file=file.choose() Graph=read.graph(file,format="pajek") Bet=betweenness(Graph,V(Graph),FALSE,NULL,TRUE,FALSE) write.table(Bet,"Betweenness.txt") }

Closeness Centrality

library(igraph) Closeness<-function() { file=file.choose() Graph=read.graph(file,format="pajek") close=closeness(Graph,V(Graph),mode=c("out","in","all","total"),NULL,TRUE) write.table(close,"Closeness.txt") }

Degree

library(igraph) Degree<-function() { file=file.choose() Graph=read.graph(file,format="pajek") deg=degree(Graph,V(Graph)) write.table(deg,"Degree.txt") }

利用.net数据来绘制其对应的对偶图

library(igraph) G <- read.graph(file="C:\\Users\\lenovo\\Desktop\\1.net",format = "pajek") plot(G,vertex.size=5,layout=layout.fruchterman.reingold, vertex.shape='circle',vertex.label.cex=1.0, vertex.label.color='black', edge.arrow.size=0) #连线的箭头的大小为0,即无箭头 #vertex.size=1表示节点的大小 #layout表示布局方式(发散性) #vertex.label=NA,不显示任何点信息,默认显示idx号 #vertex.color=V(g)$color 点的颜色设置 #mark.groups表示设置分组 #vertex.shape='none'不带边框 #vertex.label.cex=1.5, #节点字体大小 #vertex.label.color='red' #edge.arrow.size=0.7 #连线的箭头的大小 #edge.color = grey(0.5)#线的颜色 #edge.arrow.mode = "-" 箭头换成线 #vertex.label.dist=5 点标签和节点之间的距离一般0.1,便于错开重叠
转载请注明原文地址: https://www.6miu.com/read-5039169.html

最新回复(0)