使用补丁

时间:2017-11-23 15:49:48

标签: python animation matplotlib

以下代码可以正常工作,但在动画时间过程变得越来越慢。我觉得它与越来越多的补丁积累的事实有关。但我不是一个关于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()

0 个答案:

没有答案