经过审查,该代码与该问题的相关性不如我想象的那样。但是,我能够使用该SO答案和该SO答案为您拼凑出一个答案。以下代码将创建一个图,向其中添加50个随机节点和50个随机边,并在添加每个节点和边后显示图的图像。代码中的一些关键更改:
- 该代码基于使用
pylab.ion()
(请参阅此处以获取更多信息)。 - 您的代码尝试使用一个图形并更改其中的图像。此代码为每个帧创建一个新图形。
- 此代码不会写到.mp4。如果您确实需要这样做,我建议您在渲染图形时将图形写到.png文件中,然后再转换为mp4。
- 请注意,此代码使用
matplotlib.pyplot.pause()
代替time.sleep()
。如果使用,这些数字将不会显示time.sleep()
。
祝好运!
import randomimport pylabfrom matplotlib.pyplot import pauseimport networkx as nxpylab.ion()graph = nx.Graph()node_number = 0graph.add_node(node_number, Position=(random.randrange(0, 100), random.randrange(0, 100)))def get_fig(): global node_number node_number += 1 graph.add_node(node_number, Position=(random.randrange(0, 100), random.randrange(0, 100))) graph.add_edge(node_number, random.choice(graph.nodes())) fig = pylab.figure() nx.draw(graph, pos=nx.get_node_attributes(graph,'Position')) return fignum_plots = 50;pylab.show()for i in range(num_plots): fig = get_fig() fig.canvas.draw() pylab.draw() pause(2) pylab.close(fig)



