我刚开始使用networkx做图,并且想要跟踪一张图的演变过程:它是如何变化的,在指定时间t时,图中有哪些节点/边。
这是我的代码:
import networkx as nx
import matplotlib.pyplot as plt
G=nx.Graph()
G.add_node(1,id=1000,since='December 2008')
G.add_node(2,id=2000,since='December 2008')
G.add_node(3,id=3000,since='January 2010')
G.add_node(4,id=2000,since='December 2016')
G.add_edge(1,2,since='December 2008')
G.add_edge(1,3,since='February 2010')
G.add_edge(2,3,since='March 2014')
G.add_edge(2,4,since='April 2017')
nx.draw_spectral(G,with_labels=True,node_size=3000)
plt.show()
这显示了所有节点和边的图。
那么,我的问题是:
如何设计一个基于时间的过滤器,在时间t(例如“2014年7月”)仅提取图G中相关的节点/边。完成后,我如何使用matplotlib更新图形?
非常感谢您的帮助。
nodelist
和edgelist
的draw
命令来绘制G
。连续调用指定了pos
和nodecolor
值的命令可以在同一坐标轴上以不同颜色绘制图形的几个部分。 - Joel==
更改为某种形式的<=
检查来轻松实现上述日期范围(这将需要一个具有排序概念的结构化数据类型,而不是您在问题中使用的字符串属性)。 - Kalo