在networkx中判断节点在某个图中,并返回

该代码段首先导入pandas,networkx和matplotlib库,然后创建一个DataFrame用于存储图的边信息,包括id,source,target,material,pressure和weight。接着,它将DataFrame转换为networkx图,并找出最大的连通组件。对每个组件,它显示了边的数据,并绘制了整个图。最后,移除了节点10并更新了节点和边的列表。
摘要由CSDN通过智能技术生成
import pandas as pd
import networkx as nx
import matplotlib.pyplot as plt


a = [1, 2, 3, 4, 5, 6, 7]
b = ['PE', 'PE', 'PE', 'PE', 'PE', 'PE', 'PE']
c = ['高压', '高压', '高压', '高压', '高压', '高压', '高压']
d = [10, 20, 20, 22, 18, 23, 25]
e = [20, 21, 22, 23, 24, 25, 26]
f = [20, 21, 22, 23, 24, 25, 26]
df = pd.DataFrame({'id': a, 'source': d, 'target': e, 'material': b, 'pressure': c, 'weight': f})
print(df)
g = nx.from_pandas_edgelist(df, edge_attr=['id', 'source', 'target'])
all_graph = sorted(nx.connected_components(g), key=len, reverse=True)
sub_g_edges_ = [g.subgraph(com_set) for com_set in all_graph]
print(sub_g_edges_)
s = 10
for index, edges_and_attr in enumerate(sub_g_edges_):
    if s in edges_and_attr.nodes:
        print(pd.DataFrame(g.subgraph(edges_and_attr.nodes).edges(data=True)).iloc[:, -1].tolist())

nx.draw(g, with_labels=True, font_weight='bold')
plt.savefig('path.png')
print(g.nodes)
print(g.edges)
g.remove_node(10)
print(g.nodes)
print(g.edges)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值