利用python来求解网络的平均路径长度和聚类系数

利用python来求解网络的平均路径长度和聚类系数

# -*- coding: utf-8 -*-
"""
Created on Mon Aug 19 13:14:12 2019

@author: Administrator
"""

# -*- coding: utf-8 -*-
"""
Created on Sun Jun 16 20:13:42 2019

@author: Administrator
"""

"""

这个函数的作用是将一个矩阵给转换成一个图,
矩阵以多维列表的形式存在,即列表的列表
此处的转换是针对无向图

根据邻接矩阵得到图之后,我们就可以调用networkx
里面的各种函数来分析图的性质,比如度分布,
平均路径程度,聚类系数等一系列图的拓扑性质

"""

import networkx as nx



def matrix_to_graph():

  G = nx.Graph()
  
  filestr = ""
  
  with open("result.txt") as files:
     for line in files:
        # print(line)
         filestr += line.strip()
    
 # print(filestr)
  #将字符串转换成列表
  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)
        
  position = nx.circular_layout(G)
  nx.draw_networkx_nodes(G,position, nodelist=nodes, node_color="r")
  nx.draw_networkx_edges(G,position)
  nx.draw_networkx_labels(G,position)
  
  #print(nx.to_numpy_matrix(G))
 # print(G.degree()) #节点的度
# print(nx.clustering(G))#节点的聚类系数
  
  print(nx.average_clustering(G))#整个图的聚集系数
  print("---------------------------------------")
  print(nx.average_shortest_path_length(G))#图的平均路径长度
 # print(nx.number_connected_components(G))#图的连通分支
 # print(nx.to_numpy_matrix(G))
   
matrix_to_graph()
发布了28 篇原创文章 · 获赞 2 · 访问量 1378

猜你喜欢

转载自blog.csdn.net/qq_31960623/article/details/103128782
今日推荐