如果已经具有.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)