python复杂网络 学习笔记

本文介绍了使用Python中的networkx库进行复杂网络分析,包括如何安装库以及展示了点和边的基本概念,如规则图和无向图的应用。
摘要由CSDN通过智能技术生成

networkx库

pip install --upgrade networkx

点和边示例:

import networkx as nx
import matplotlib.pyplot as plt
G = nx.Graph()  #初始化一个图
G.add_node('a')
G.add_node('b')
G.add_node('c')
G.add_node('d')
G.add_node('e')
G.add_edge('a','b') #连接a、b得到ab边
G.add_edge('a','d')
G.add_edge('a','e')
G.add_edge('a','c')
nx.draw(G,with_labels=True)
plt.show()

规则图:

import networkx as nx

import matplotlib.pyplot as plt

RG = nx.random_graphs.random_regular_graph(3,20)  #生成包含20个节点、每个节点有3个邻居的规则图RG

pos = nx.spectral_layout(RG)          #定义一个布局,此处采用了spectral布局方式,后变还会介绍其它布局方式,注意图形上的区别

nx.draw(RG,pos,with_labels=False,node_size = 30)  #绘制规则图的图形,with_labels决定节点是非带标签(编号),node_size是节点的直径

plt.show()  #显示图形

无向图示例:

import networkx as nx

import matplotlib.pyplot as plt

# BA scale-free degree network

# generalize BA network which has 20 nodes, m = 1

BA = nx.random_graphs.barabasi_albert_graph(20, 1)

# spring layout

pos = nx.spring_layout(BA)

nx.draw(BA, pos, with_labels = False, node_size = 30)

plt.show()

 

 

# 导入相关依赖
from matplotlib import pyplot as plt
import networkx as nx
import numpy as np

# 生成随机数据
G = nx.erdos_renyi_graph(50,0.5)

# 指定画布大小
plt.figure(figsize=(18,18))

# 生成新的图
G_new = nx.Graph()

# 依据图中边的数量,生成同样长度的随机权重值
weightList = {}
for i in range(len(G.edges())+1):
    weightList[i] = np.random.rand()

# 将生成的随机权重复制给G_new图
i = 0
for edge in G.edges():
    i += 1
    G_new.add_edges_from([(edge[0], edge[1], {'weight': weightList[i]})])
# 绘制G_new图
nx.draw_networkx(G_new)
plt.show()

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值