如何利用Networkx创建图

前言:

本篇博客主要是总结如何利用python创建图,包括结点、边的增删,以及如何查看图的相关属性。

目录

1.预备工作

2.创建图的结点

3.创建图的边

4.结点、边的删除

5.查看图的结点、边、结点的度数以及结点的邻接表


1.预备工作

(1)安装Networkx包

pip install networkx

(2)导入包

import networkx as nx

(3) 创建图

# 创建一个空图G
G = nx.Graph()

2.创建图的结点

方式1:G.add_node(),一次只能添加一个结点,对象可以是整数、字符、字符串

方式2:G.add_nodes_from(),一次可以添加多个结点


# 方式1:一次只能添加一个结点

#添加结点,名分别为'0' 和‘11’
G.add_node('0')
G.add_node('11')

# 方式2: 一次可以添加多个结点,对象可以是整数、列表、字符串等


# 添加两个结点,名为1 和 ’node4'
G.add_nodes_from([ 1,"node4"])


# 添加5个结点,名称分别为:‘n' 'o' 'd' 'e' '4'
G.add_nodes_from("node4")

# 输出图G的结点
print(G.nodes())

需要说明的是在利用方式2添加多个结点的时候,没有以下形式:

G.add_nodes_from( 1,"node4")

报错: 

 3.创建图的边

方式1: add_edge(): 一次只可以添加一条边

方式2: add_edges_from():一次可以添加多条边


# 创建一个空图G
G = nx.Graph()

# 添加结点,结点的对象可以是整数、字符串
G.add_nodes_from([0,1,2,3])
# 输出图G的结点
print(G.nodes())

# 添加边
#方式1: 一次可以添加一条边
G.add_edge(0,1)
#方式2:一次可以添加多个边
G.add_edges_from([ (1, 2), (2, 3), (3, 0)])
# 图的显示
nx.draw(G, with_labels=True, alpha=0.8, node_size=500)

效果图: 

4.结点、边的删除

(1) remove_node() :删除一个结点以及和结点相关联的边,如果没有任何节点,报错NetworkxError

(2) remove_nodes_from() :该方法接受一个可迭代容器,并从图中删除与这些节点相关的所有节点和边。如果图中不存在任何节点,它将不做任何更改,默默地丢弃它。

(3) remove_edge() :该方法从图中删除一条边,保持结点不变。如果该边在图中不存在,它将引发NetworkXError。

(4) remove_edges_from() :该方法接受一个可迭代容器,并从图中删除边。如果图中不存在任何边,它将不做任何更改,默默地丢弃它

5.查看图的结点、边、结点的度数以及结点的邻接表

import networkx as nx
import matplotlib.pyplot as plt



# 创建一个空图G
G = nx.Graph()

# 添加结点,结点的对象可以是整数、字符串
G.add_node(4)
G.add_nodes_from([0,1,2,3])


# 添加边
#方式1: 一次可以添加一条边
G.add_edge(0,1)
#方式2:一次可以添加多个边
G.add_edges_from([ (1, 2), (2, 3), (3, 0)])

# 图的显示
nx.draw(G, with_labels=True, alpha=0.8, node_size=500)

#显示图的信息
#图G所有结点
print(G.nodes())
#图G所有边
print(G.edges())
#结点3的邻接表
print(G.adj[3])
#结点3的度数
print(G.degree[3])
#所有结点的邻接表
print(G.adj)
#所有结点的度数,输出形式:(结点,该结点的度数)
print(G.degree)

参考资料:

NetworkX Package - Python Graph Library - AskPythonicon-default.png?t=LA92https://www.askpython.com/python-modules/networkx-package#:~:text=Importing%20the%20NetworkX%20Package%20In%20order%20to%20use,You%20can%20download%20it%20using%20the%20pip%20command.

推荐阅读:

networkx(图论)的基本操作 - 知乎 (zhihu.com)icon-default.png?t=LA92https://zhuanlan.zhihu.com/p/40852672 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值