Python 删除节点时是否可以在networkX中设置图形动画?

Python 删除节点时是否可以在networkX中设置图形动画?,python,graph,nodes,networkx,Python,Graph,Nodes,Networkx,我有一个由大约200个节点组成的图,我在每次迭代中删除其中的节点。 可以在移除节点的情况下可视化图形,但这样做时节点的位置不会改变。理想情况下,我想去掉节点,看看剩余的节点是否移动得更近,以及随着越来越多的节点被移除,集群是否形成 我正在使用networkX进行此操作。我尝试在每次迭代时重新计算图形,但图形的创建方式似乎存在一些随机性。因此,我在每次迭代中得到一个非常不同的图 有什么方法可以实现我想要的吗?您可以使用draw\u networkx来实现: import networkx as n

我有一个由大约200个节点组成的图,我在每次迭代中删除其中的节点。 可以在移除节点的情况下可视化图形,但这样做时节点的位置不会改变。理想情况下,我想去掉节点,看看剩余的节点是否移动得更近,以及随着越来越多的节点被移除,集群是否形成

我正在使用networkX进行此操作。我尝试在每次迭代时重新计算图形,但图形的创建方式似乎存在一些随机性。因此,我在每次迭代中得到一个非常不同的图


有什么方法可以实现我想要的吗?

您可以使用
draw\u networkx
来实现:

import networkx as nx
import matplotlib.pyplot as plt

nodes = [i for i in range(10)]
edges = [(i, i+1) for i in range(5)]
G = nx.Graph()
G.add_nodes_from(nodes)
G.add_edges_from(edges)

positions = {}

for node in nodes:
    positions[node] = (node, node)

nx.draw_networkx(G, pos=positions)
我生成一个包含10个节点和一些边的图,然后定义一个
dict
,其中键是节点(这里是1到10),值是(x,y)格式的坐标。在本例中,我沿一条线排列节点。
然后,在下一次迭代中,只需删除不需要的节点并传递相同的dict。它将跳过缺少的节点,并只绘制仍存在于图中的节点:

G.remove_nodes_from([5,6])
nx.draw_networkx(G, pos=positions)
您应该会看到缺少节点5和节点6。
.draw\u networkx
依赖于
matplotlib
,因此您可以执行该库允许的许多操作。更多信息

希望有帮助