基本工具包使用
import networkx as nx
import numpy as np
import random
import pandas as pd
# 数据可视化
import matplotlib.pyplot as plt
import matplotlib as mpl
%matplotlib inline
plt.rcParams['font.sans-serif']=['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False # 用来正常显示负号
Networkx 基本使用
创建图
使用 API 快速创建
经典图结构:
全连接图:complete_graph (7)【无向图】;complete_graph (7, nx. DiGraph ())【有向图】
环状图:cycle_graph (5)
梯状图:ladder_graph (5)
线性串珠图:path_graph (15)
星状图:star_graph (7)
轮辐图:wheel_graph (8)
二项树:binomial_tree (5)
栅格图:
二维矩形网格图:grid_2d_graph (3, 5)
多维矩形网格图:grid_graph (dim=(2, 3, 4))
二维三角形网格图:triangular_lattice_graph (2, 5)
二维六边形蜂窝图:hexagonal_lattice_graph (2, 3)
N 维超立方体图:hypercube_graph (4)
NetwrokX 内置图:
Diamond_graph ()
Bull_graph ()
Frucht_graph ()
House_graph ()
House_x_graph ()
Petersen_graph ()
Krackhardt_kite_graph ()
随机图:erdos_renyi_graph (10, 0.5)
解释:第一个参数表示节点个数,第二个参数表示边产生的概率
无标度网络 Scale-free Network :scale_free_graph (100)
解释:自然界中的一些事物服从正态分布,而对于另一些事物,个体与个体之间的差异明显。比如个人收入,大多数人月收入不到一万,而少数人月收入高达百万。幂律分布描述类似这样多数个体量级很小,少数个体量级很大的情况。对于许多现实世界中的复杂网络,如互联网、社会网络等,各节点拥有的连接数(度 Degree)服从幂律分布。也就是说,大多数“普通”节点拥有很少的连接,而少数“热门”节点拥有极其多的连接。这样的网络称作无标度网络(Scale-free Network),网络中的“热门”节点称作枢纽节点(Hub)。