diff --git a/lib/matplotlib/animation.py b/lib/matplotlib/animation.py index bb3d686375d4..70500b34839c 100644 --- a/lib/matplotlib/animation.py +++ b/lib/matplotlib/animation.py @@ -1658,7 +1658,14 @@ def __init__(self, fig, func, frames=None, init_func=None, fargs=None, elif callable(frames): self._iter_gen = frames elif np.iterable(frames): - self._iter_gen = lambda: iter(frames) + if kwargs.get('repeat', True): + def iter_frames(frames=frames): + while True: + this, frames = itertools.tee(frames, 2) + yield from this + self._iter_gen = iter_frames + else: + self._iter_gen = lambda: iter(frames) if hasattr(frames, '__len__'): self.save_count = len(frames) else: