python networkx教程_python-使用NetworkX进行动画图扩散

我想为图形上的过程设置动画(最好是在NetworkX中).我已经看过this question.但是,当我运行解决方案中给出的代码时,我只看到最终输出.另外,这不会以某些可用格式保存动画.

假设我们有以下图形:

import networkx as nx

g = nx.Graph()

g.add_edges_from([(1, 2), (2, 3), (1, 3), (1, 4), (3, 4), (4, 5), (5, 9), (4, 9)])

另外,我们有一组初始节点,我们将其称为活动节点:

active = {1, 3}

直观地,我想做的是为每个活动节点创建动画,以使图中的其他节点及时变为活动状态.因此,如果我们假设一个模型,如果每个节点的至少两个邻居变为活动状态,则每个节点都会活动,那么在第二次迭代中,活动节点集将为:

active = {1, 3, 2, 4}

在下一次迭代中,活动节点集将为:

active = {1, 3, 2, 4, 5}.

在最后的迭代中,图中的所有节点将变为活动状态:

active = {1, 3, 2, 4, 5, 9}

此过程称为打翻过程,是网络中信息传播的一个示例.您可以在下面看到该算法的非常简单的实现.

def tipping(graph, seed_set, thr=2):

active = seed_set

has_changed = False

for n in filter(lambda n: n not in active, graph.nodes()):

if len(filter(lambda nei: nei in active, graph.neighbors(n))) >= thr:

active.add(n)

has_changed = True

if has_changed:

return tipping(graph, active, thr) | active

return active

我想知道是否有任何方法可以可视化此过程.我知道我可以使用networkX中的nx.draw()函数绘制网络.但是,在这种情况下,我还没有看到产生动画的任何函数或任何其他有用的输出.

一种可能的解决方案是在过程的每个步骤中以不同的节点颜色绘制图形,保存每种颜色,并使用所有保存的图片制作gif动画.

如何使用Networkx设置扩散动画?动画最好在IPython笔记本中运行.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值