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)
在networkx中判断节点在某个图中,并返回
最新推荐文章于 2024-10-08 17:02:35 发布
该代码段首先导入pandas,networkx和matplotlib库,然后创建一个DataFrame用于存储图的边信息,包括id,source,target,material,pressure和weight。接着,它将DataFrame转换为networkx图,并找出最大的连通组件。对每个组件,它显示了边的数据,并绘制了整个图。最后,移除了节点10并更新了节点和边的列表。
摘要由CSDN通过智能技术生成