以下代码可以正常工作,但在动画时间过程变得越来越慢。我觉得它与越来越多的补丁积累的事实有关。但我不是一个关于matplotlib动画的专家,并且没有线索可以保持较长序列的速度不变。 在有人问:我的问题看起来与这个问题类似"Matplotlib animation slows down when adding patches",但建议的解决方案 - 无论如何都不是最终的 - 在我的案例中并不奏效。在其他问题中,我真的需要一种类设计,如示例代码中的类设计。
感谢您的任何建议
import numpy as np
from matplotlib import pyplot as plt
from matplotlib import animation
class myMovie:
def __init__(self):
self.fig = plt.figure()
self.ax = plt.axes(xlim=(0, 100), ylim=(0, 100))
self.toDraw = []
for i in range(10):
agent = plt.Circle((10, -10), 0.75, fc=(i/10,0,0))
self.toDraw.append(agent)
def init(self):
for i in range(10):
self.toDraw[i].center = (50,50)
self.ax.add_patch(self.toDraw[i])
return []
def animationManage(self,i):
for j in range(10):
d = np.random.rand(2) - 0.5
c = self.toDraw[j].center + d
self.toDraw[j].center = c
self.ax.add_patch(self.toDraw[j])
return []
def justPlot(self):
self.anim = animation.FuncAnimation(self.fig, self.animationManage,
init_func=self.init,
interval=20,
repeat=True)
self.fig.show()
justATest = myMovie()
justATest.justPlot()