首页 > 其他分享 >Networkx 常用

Networkx 常用

时间:2023-10-21 09:11:08浏览次数:32  
标签:常用 plt degree bc nx Networkx print sorted

network statistics

print('* ' * 30)
print('network statistics')
print(nx.info(G))
print(nx.is_connected(G))
components = nx.connected_components(G)
print('num of connected_components:', nx.number_connected_components(G))

triadic_closure = nx.transitivity(G)
print("Triadic closure:", triadic_closure)

n = len(G.nodes)
sorted_degree, sorted_eigenvector, sorted_betweenness = nf.nx_statics(G)

1 degree distribution

# https://mp.weixin.qq.com/s/-41OzWUbELGO5zjFD0-TgA
mean_degree = np.sum([i[1] for i in sorted_degree]) / n
x = list(range(max([i[1] for i in sorted_degree]) + 1))
y = [i / n for i in nx.degree_histogram(G)]

plt.plot(x, y, 'ro-')
plt.xlabel("$k$")
plt.ylabel("$p_k$")
plt.show(block=True)
log_x, log_y = log_axis(x, y)

2 diameter_g

diameter_g = nx.diameter(G)
local_efficiency = nx.local_efficiency(G)
global_efficiency = nx.global_efficiency(G)
average_shortest_path_length = nx.average_shortest_path_length(G)

print('diameter: ', diameter_g, '\n',
      'local_efficiency: ', local_efficiency, '\n',
      'global_efficiency: ', global_efficiency, '\n',
      'average_shortest_path_length: ', average_shortest_path_length, )

3 clustering efficient

# clustering = np.mean(list(nx.clustering(G).values()))
average_clustering = nx.average_clustering(G)  # 平均集聚系数
transitivity = nx.transitivity(G)  # 全局集聚系数, 网络效率

4 度-度相关性

# 基于Pearson相关系数的度-度相关性, Assortativity coefficient(同配系数)
degree_ac = nx.degree_assortativity_coefficient(G)
pearson_r = nx.degree_pearson_correlation_coefficient(G)
sorted_k, k_nn_k = average_nearest_neighbor_degree(G)

fig, ax = plt.subplots(1, 1, figsize=(8, 6))
plt.plot(sorted_k, sorted_k, 'gv', label='pearson correlation = ' + '%.3f' % pearson_r)
plt.legend(loc=0)
plt.xlabel("$k$")
plt.ylabel("$k_{nn}(k)$")
# plt.xscale("log")
# plt.yscale("log")
plt.title('celegans_metabolic')
plt.ylim([1, 100])

plt.tight_layout()
plt.show(block=True)

5. 介数

 # 节点介数
bc = nx.betweenness_centrality(G)
sorted_bc = sorted(bc.items(), key=itemgetter(1), reverse=True)
print('max bc id: ', sorted_bc[0])

# 边介数
ebc = nx.edge_betweenness_centrality(G)
sorted_ebc = sorted(ebc.items(), key=itemgetter(1), reverse=True)
print('max bc id: ', sorted_ebc[0])

# 核度
ks = nx.core_number(G)
sorted_ks = sorted(ks.items(), key=itemgetter(1), reverse=True)
print('max bc id: ', sorted_ks[0])

# 网络密度
density = nx.density(G)
# print(nx.density(kcg))

6. 中心性指标

# 度中心性
dc = nx.degree_centrality(G)
# 介数中心性
bc = nx.betweenness_centrality(G)
# 接近度中心性
cc = nx.closeness_centrality(G)
# 特征向量中心性
ec = nx.eigenvector_centrality(G)

# 绘图比较
plt.figure(figsize=(10, 10))
plt.subplot(221)
plt.plot(dc.keys(), dc.values(), 'ro', label='ER')
plt.legend(loc=0)
plt.xlabel("node label")
plt.ylabel("dc")
plt.title("degree_centrality")

plt.subplot(222)
plt.plot(bc.keys(), bc.values(), 'ro', label='ER')
plt.legend(loc=0)
plt.xlabel("node label")
plt.ylabel("bc")
plt.title("betweenness_centrality")

plt.subplot(223)
plt.plot(cc.keys(), cc.values(), 'ro', label='ER')
plt.legend(loc=0)
plt.xlabel("node label")
plt.ylabel("cc")
plt.title("closeness_centrality")

plt.subplot(224)
plt.plot(ec.keys(), ec.values(), 'ro', label='ER')
plt.legend(loc=0)
plt.xlabel("node label")
plt.ylabel("ec")
plt.title("eigenvector_centrality")

社区检测

import community
communities = community.best_partition(G)
nx.set_node_attributes(G, communities, 'modularity')
nx.get_node_attributes(G, 'eigenvector')

标签:常用,plt,degree,bc,nx,Networkx,print,sorted
From: https://www.cnblogs.com/RankFan/p/17778448.html

相关文章

  • 关于JAVA项目中的常用的异常处理情况
    JAVA项目中的常用的异常处理情况总结   在Java应用程序开发中,异常处理是至关重要的,因为它可以帮助您的程序应对各种不可预测的情况和错误。无论是在开发新项目还是在维护现有项目时,了解如何有效地处理异常是确保您的应用程序稳定性和可靠性的关键。本文将深入探讨Java项......
  • JAVA项目中的常用的异常处理情况总结
    在Java项目开发中,异常处理是至关重要的一部分。良好的异常处理能够提高程序的稳定性和可靠性,使得程序在面对意外情况时能够有所作为,而不至于因为一些小错误而导致整个系统崩溃。以下是Java项目中常见的异常处理情况及其处理方法的详细总结:1.空指针异常(NullPointerException)空指......
  • 常用的异常处理情况
    经过我这几天对异常处理的资料的搜集,我发现理解和处理异常对于任何一个Java开发人员来说都是至关重要的。因为在Java项目中,异常处理是确保程序的稳定性和可靠性的关键一步。这篇报告,我总结了一下在Java项目中常见的异常情况以及它们的处理方法。从他们的基本概念开始,然后深入一......
  • Linux-管道、环境变量、常用命令
    目录管道概念要点与文件重定向的区别环境变量概念查看常用命令查看系统状况权限文件查找用户相关工具管道概念管道的作用类似于文件重定向,可以将前一个命令的stout做为下一个命令的stdin要点管道命令进处理stdout,会忽略stderr管道右边的命令必须能接受stdin多个管道命令可......
  • mysql常用报表处理及数据迁移写法SQL
    熟悉一些常用的sql写法便于工作中快速导出数据,本文不涉及到业务,所以对表库做了名字的修改,仅提供一些用法的说明。以下直接举例子并讲解1单表批量数据迁移场景:日志迁移具体实例:将test_log2日志表2的数据全部迁移到test_log1日志表1sql:......
  • 电机分类及常用的电机介绍
    电机的分类主要按以下6大类划分1、按工作电源种类:可分为直流电机和交流电机。其中交流电机还可分为单相电机(220V)和三相电机(380V)。2、按结构和工作原理:可分为直流电动机、异步电动机、同步电动机。3、按起动与运行方式:电容起动式单相异步电动机、电容运转式单相异步电动机、电......
  • clickhouse常用的函数整理
    转:https://blog.csdn.net/m0_37899908/article/details/118531285一、检测函数类型(clickhouse中数据的类型)SELECTtoTypeName(0);--UInt8(三位数为8)SELECTtoTypeName(-0);--Int8SELECTtoTypeName(-343);--Int16SELECTtoTypeName(12.43);--Float64(默认浮点型的数据......
  • mysql SQL优化的常用手段有哪些?
    mysqlSQL优化的手段有哪些?1.explain输出执行计划2.in和notin要慎用3.少用select*4.where及orderby涉及的列上建立索引,如果排序字段没有用到索引,就尽量少排序5.可以在程序中排序。6.where子句中避免isnull/isnotnull,7.应尽量避免在where!=或<>or,函数操作......
  • 常用端口
    端口概念在网络技术中,端口(Port)有两种意思:一是物理意义上的端口,比如,ADSLModem、集线器、交换机、路由器用于连接其他网络设备的接口,如RJ-45端口、SC端口等等。二是逻辑意义上的端口,一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务......
  • 三维模型3DTile格式轻量化压缩处理工具常用几款软件介绍
    三维模型3DTile格式轻量化压缩处理工具常用几款软件介绍   三维模型3DTile格式的轻量化处理旨在减少模型的存储空间和提高渲染性能。以下是一些推荐的工具软件,可以用于实现这个目的:MeshLab:MeshLab是一个开源的三维模型处理软件,它支持多种格式的导入和导出,包括3DTiles。通......