繁体   English   中英

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

[英]Is it possible to animate a graph in networkX while removing nodes?

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

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

有没有办法实现我想要的?

您可以为此使用draw_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。 它将跳过丢失的节点,只跳过 plot 图中仍然存在的节点:

G.remove_nodes_from([5,6])
nx.draw_networkx(G, pos=positions)

您应该会看到节点 5 和 6 丢失。 .draw_networkx依赖于matplotlib ,因此您可以执行该库允许的许多事情。 更多信息在这里

希望能帮助到你!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM