Skip to main content
 首页 » 编程设计

python之NetworkX:首先完整地绘制相同的图形,然后删除一些节点

2025年05月04日25lexus

假设我有一个包含 10 个节点的图表,我想在以下情况下绘制它:

  1. 完好无损
  2. 它已经删除了几个节点

如何确保第二个图的位置与第一个图的位置完全相同?

我的尝试生成了两个使用不同布局绘制的图形:

import networkx as nx 
import matplotlib.pyplot as plt 
%pylab inline 
 
#Intact 
G=nx.barabasi_albert_graph(10,3) 
fig1=nx.draw_networkx(G) 
 
#Two nodes are removed 
e=[4,6] 
G.remove_nodes_from(e) 
plt.figure() 
fig2=nx.draw_networkx(G) 

请您参考如下方法:

networkx 的绘图命令接受参数 pos。

所以在创建fig1之前,定义pos这两行应该是

pos = nx.spring_layout(G) #other layout commands are available. 
fig1 = nx.draw_networkx(G, pos = pos) 

以后你会做

fig2 = nx.draw_networkx(G, pos=pos).