【问题标题】:Is it possible to animate a graph in networkX while removing nodes?是否可以在删除节点的同时在 networkX 中为图形设置动画?
【发布时间】:2020-02-21 21:48:03
【问题描述】:

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

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

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

【问题讨论】:

    标签: python graph nodes networkx


    【解决方案1】:

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

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

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

    希望对你有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-27
      • 1970-01-01
      • 2015-05-03
      • 2019-09-04
      • 2015-10-22
      • 2012-01-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多