斯坦福CS224W图机器学习task03NetworkX工具包实战

图机器学习NetworkX代码实战-创建图和可视化

安装networkX及相应工具包

pip install numpy pandas matplotlib tqdm networkx

如需考虑换源,可在后面加上(非视频清华源)

-i http://pypi.douban.com/simple --trusted-host pypi.douban.com

当安装完成后,输入如下代码验证版本及是否安装成功

import networkx as nx
nx.__version__

运行结果如下:版本为2.8.7(未报错即说明安装成功) 

 设置matplotlib中文字体

#显示中文标签
plt.rcParams['axes.unicode_minus'] = False
#正常显示负号
plt.rcParams["font.sans-serif"] = ["SimHei"]

测试是否设置成功

plt.plot([1,2,3],[100,500,300])
plt.title('matplotlib中文字体测试', fontsize=25)
plt.xlabel('X轴',fontsize=15)
plt.ylabel('Y轴',fontsize=15)
plt.show()

这样便算设置成功了。

全连接无向图

一个无向图中的任意两个节点之间都有一条边相连。

G1 = nx.complete_graph(7) #传参,里面有七个结点
nx.draw(G1)
#全图连接数
print('全图连接数为:',G1.size())

 全图连接数为: 21

全连接有向图

每个节点都有向其他节点发出连边,同时也能接收其他节点发出的连边。

plt.figure()
#全连接有向图
G2 = nx.complete_graph(7,nx.DiGraph) #传参,里面有七个结点,nx.DiGraph为有向图
nx.draw(G2)
#全图连接数
print('全图连接数为:',G2.size())

全图连接数为: 42

 判断是否为有向图

G.is_directed()
print('G1是否为有向图',G1.is_directed())#判断是否有向图
print('G2是否为有向图',G2.is_directed())#判断是否有向图

G1是否为有向图 False
G2是否为有向图 True

环状图

#环状图
G3 = nx.cycle_graph(5)
nx.draw(G3)

梯状图(不固定)

#梯状图
G4 = nx.ladder_graph(5)
nx.draw(G4)

线性串珠图

#线性串珠图
G5 = nx.path_graph(15)
nx.draw(G5)

星状图

#星状图
G6 = nx.star_graph(7)
nx.draw(G6)

二项树

#二项树
G8 = nx.binomial_tree(5)
nx.draw(G8)

栅格图

二维矩形网格图

G9 = nx.grid_2d_graph(3, 5)
nx.draw(G9)

多维矩形网格图

G10 = nx.grid_graph(dim=(2,3,4))
nx.draw(G10)

二维三角形网格图

G11 = nx.triangular_lattice_graph(2, 5)
nx.draw(G11)

二维六边形蜂窝图

G12 = nx.hexagonal_lattice_graph(2, 3)
nx.draw(G12)

n维超立法体图

G13 =nx.hypercube_graph(4)
nx.draw(G13)

NetworkX内置图

#钻石图
G14 = nx.diamond_graph()
nx.draw(G14)

#牛角图
G15 = nx.bull_graph()
nx.draw(G15)

#多边体图
G16 = nx.frucht_graph()
nx.draw(G16)

G17 = nx.house_graph()
nx.draw(G17)

G18 = nx.house_x_graph()
nx.draw(G18)

#多维立体图
G19 = nx.petersen_graph()
nx.draw(G19)

#风筝图
G20 = nx.krackhardt_kite_graph()
nx.draw(G20)

#随机图
G21 = nx.erdos_renyi_graph(10, 0.5)
nx.draw(G21)

有向图

#有向图
G1 = nx.scale_free_graph(100)
nx.draw(G1)

社交网络

空手道俱乐部数据集 

#空手道俱乐部数据集
G2 = nx.karate_club_graph()
nx.draw(G2, with_labels=True)

雨果《悲惨世界》人物关系

#雨果《悲惨世界》人物关系
Gyuguo = nx.les_miserables_graph()
plt.figure(figsize=(12, 10))
pos = nx.spring_layout(Gyuguo,seed=10)
nx.draw(Gyuguo, pos, with_labels=True)

Florentine families graph

GFl = nx.florentine_families_graph()
nx.draw(GFl, with_labels=True)

社群聚类图 

#社群聚类图
Gshe = nx.caveman_graph(4, 3)
nx.draw(Gshe, with_labels=True)

#树
tree = nx.random_tree(n=10, seed=0)
print(nx.forest_str(tree,sources=[0]))

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值