networkx基础用法:添加节点、添加边、删除节点、删除边、计算度、赋权重

这篇博客介绍了如何使用networkx库进行图的基本操作,包括添加和删除节点、边,以及如何显示和赋权。内容涉及添加节点、边的多种方法,强调了删除节点会一并移除与其相关的边。还提到了在Jupyter环境中,cell的运行顺序对结果的影响,以及如何为边添加value作为权重。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

涉及到的方法:

正常安装方法

pip3 install networkx

如果是pip用户就把pip3改成pip

如果报了一堆错看这里↓
networkx安装教程

添加节点和边的多种方法以及显示

import networkx as nx

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

G.add_node(1)  #添加节点1

G.add_nodes_from([2, 3]) #添加边(2,3)

print(G.nodes)# 打印出所有的节点信息
G.add_edge(1,2) #添加边的另一种方法(1,2)
e = (2, 3)
G.add_edge(*e)   # unpack edge tuple* 
G.add_edges_from([(1, 2), (1, 3)]) #添加边的第三种方法,补全三角形对边
G.add_node("spam")            # adds node "spam"
G.add_nodes_from("spam")  # adds 4 nodes: 's', 'p', 'a', 'm'  把spam拆开4个点添加进去

print(G.nodes) # 打印出所有的节点信息

G.add_edge(3, 'm')  #给3和m之间添加一个边
#At this stage the graph G consists of 8 nodes and 3 edges, as can be seen by:
G.number_of_nodes() #计算节点数量
G.number_of_edg
`draw_networkx_edges` 函数是 NetworkX 中用于绘制图形中的的函数。如果你想让每条的颜色与其起始节点(source node)的颜色保持一致,NetworkX本身并不直接支持这样的功能,因为它的默认设置通常是根据权重或者其他用户自定义的数据来决定的颜色。但是,你可以通过以下步骤来间接实现这种效果: 1. 首先,你需要计算出每个节点的颜色。这可能是基于节点的某种属性,比如标签、数或者其他自定义值。 2. 然后,在绘制的时候,可以为每一条指定一个从源节点颜色开始的颜色渐变。这需要你自己编写一些额外的代码,比如使用 matplotlib 的 `LinearSegmentedColormap` 来创建一个从源节点颜色到目标节点颜色的线性过渡。 以下是一个简化的示例,展示如何在一个简单的图形中使用节点颜色作为的颜色起点: ```python import networkx as nx import matplotlib.pyplot as plt from matplotlib.colors import LinearSegmentedColormap def get_edge_color(node_colors, source, target): # 假设node_colors是一个字典,存储了每个节点的颜色 return plt.cm.LinearSegmentedColormap.from_list('my_colormap', [node_colors[source], node_colors[target]], N=256)(0.5) # 创建一个有颜色的简单图 G = nx.DiGraph() # 使用方向图,假设你已经有了节点颜色 node_colors = {n: 'red' for n in G.nodes} # 示例节点颜色 edges = [(0, 1), (1, 2)] # 示例 # 自定义 edge_color 函数 G.graph['edge_color'] = lambda u, v: get_edge_color(node_colors, u, v) # 绘制 pos = nx.spring_layout(G) # 使用布局函数 nx.draw_networkx_edges(G, pos, edgelist=edges, edge_color='edge_color') plt.show()
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值