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

1 篇文章 0 订阅

如果已经具有.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,便于错开重叠
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值