利用python求解度中心性

利用networkx里面的函数degree_centrality(G)来求解图的度中心性。

代码如下:

# -*- coding: utf-8 -*-
"""
Created on Sat Sep 14 18:01:27 2019

@author: Administrator
"""

'''
程序的算法思想:需要读入一个邻接矩阵,存储在TXT文本中,
然后读入程序里面。使用图的邻接矩阵来还原成一个图,
然后使用networkx里面的函数degree_centrality(G)
来求解图的度中心性。

'''
import matplotlib.pyplot as plt
import networkx as nx
import operator


def matrix_to_graph():
    
  G = nx.Graph()
  
  filestr = ""
  
  with open("mlMatrix.txt") as files:
     for line in files:
         filestr += line.strip()
 
  
  #将字符串转换成列表
  matrix = eval(filestr)

  nodes = range(len(matrix))
  G.add_nodes_from(nodes)
 
  for i in range(len(matrix)):
    for j in range(len(matrix)):
      if(matrix[i][j] == 1):
		G.add_edge(i, j)
  
  dc = nx.algorithms.centrality.degree_centrality(G)
  print(dc)
  print("----------------------------------------")
  
   #将字典的形式转化成按照value从小到大排序
  list_dc = sorted(dc.items(), key=operator.itemgetter(1))
  print(list_dc)

matrix_to_graph()

结果如下:

利用python求解度中心性_第1张图片

你可能感兴趣的:(python相关,python,network,度中心性)